diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/gcc/elna-generic.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/gcc/elna-generic.cc b/gcc/gcc/elna-generic.cc index 57c8c22..de00642 100644 --- a/gcc/gcc/elna-generic.cc +++ b/gcc/gcc/elna-generic.cc @@ -531,8 +531,9 @@ namespace elna::gcc { const tree_code combination_code = equality_code == EQ_EXPR ? TRUTH_ANDIF_EXPR : TRUTH_ORIF_EXPR; + const boot::type resolved_type = boot::erase_generic(left_type); - if (left_type.get<boot::slice_type>() != nullptr) + if (resolved_type.get<boot::slice_type>() != nullptr) { tree lhs_ptr_field = TYPE_FIELDS(TREE_TYPE(left)); tree lhs_length_field = TREE_CHAIN(lhs_ptr_field); @@ -558,8 +559,8 @@ namespace elna::gcc return build2(combination_code, elna_bool_type_node, length_equality, equals_zero); } - else if (left_type.get<boot::record_type>() != nullptr - || left_type.get<boot::array_type>() != nullptr) + else if (resolved_type.get<boot::record_type>() != nullptr + || resolved_type.get<boot::array_type>() != nullptr) { tree size = fold_convert(elna_word_type_node, size_in_bytes(TREE_TYPE(left))); |
