@@ -6534,9 +6534,9 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
65346534 } else if ( attr_name == " name" ) {
65356535
65366536 ASR::expr_t * a_len = ASRUtils::EXPR (ASR::make_IntegerConstant_t (al,
6537- loc, - 2 , ASRUtils::TYPE (ASR::make_Integer_t (al, loc, 4 ))));
6537+ loc, std::string (enum_type-> m_name ). size () , ASRUtils::TYPE (ASR::make_Integer_t (al, loc, 4 ))));
65386538 ASR::ttype_t * char_type = ASRUtils::TYPE (ASR::make_String_t (
6539- al, loc, 1 , a_len, ASR::string_length_kindType::DeferredLength , ASR::string_physical_typeType::DescriptorString));
6539+ al, loc, 1 , a_len, ASR::string_length_kindType::ExpressionLength , ASR::string_physical_typeType::DescriptorString));
65406540 tmp = ASR::make_EnumName_t (al, loc, t_mem, type, char_type, nullptr );
65416541 }
65426542 } else if (ASR::is_a<ASR::UnionType_t>(*type)) {
@@ -6677,7 +6677,7 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
66776677 ASR::expr_t * a_len = ASRUtils::EXPR (ASR::make_IntegerConstant_t (al, x.base .base .loc ,
66786678 std::string (s).size (), ASRUtils::TYPE (ASR::make_Integer_t (al, x.base .base .loc , 8 ))));
66796679 enum_ref_type = ASRUtils::TYPE (ASR::make_String_t (
6680- al, x.base .base .loc , 1 , a_len, ASR::string_length_kindType::DeferredLength ,
6680+ al, x.base .base .loc , 1 , a_len, ASR::string_length_kindType::ExpressionLength ,
66816681 ASR::string_physical_typeType::DescriptorString));
66826682 enum_ref_value = ASRUtils::EXPR (ASR::make_StringConstant_t (al, x.base .base .loc ,
66836683 s, enum_ref_type));
0 commit comments