https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88383

            Bug ID: 88383
           Summary: ICE calling _builtin_has_attribute(r, aligned(N))) on
                    an overaligned reference r
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

While pondering bug 88362 I noticed that calling __builtin_has_attribute (r,
aligned (N)) on a reference like in the test case below causes an ICE:

$ cat t.C && gcc -O2 -S -Wall -Wextra t.C
extern __attribute__ ((aligned (8))) int &r;

int f ()
{
  return __builtin_has_attribute (r, aligned (8));
}
t.C: In function ‘int f()’:
t.C:5:48: internal compiler error: tree check: expected tree that contains
‘decl minimal’ structure, have ‘indirect_ref’ in build_decl, at tree.c:4988
    5 |   return __builtin_has_attribute (r, aligned (8));
      |                                                ^
0x1891993 tree_contains_struct_check_failed(tree_node const*,
tree_node_structure_enum, char const*, int, char const*)
        /ssd/src/gcc/svn/gcc/tree.c:9931
0x82a67e contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
        /ssd/src/gcc/svn/gcc/tree.h:3268
0x187db4d build_decl(unsigned int, tree_code, tree_node*, tree_node*)
        /ssd/src/gcc/svn/gcc/tree.c:4988
0xc6513e validate_attribute
        /ssd/src/gcc/svn/gcc/c-family/c-attribs.c:3998
0xc65291 has_attribute(unsigned int, tree_node*, tree_node*, tree_node*
(*)(tree_node*))
        /ssd/src/gcc/svn/gcc/c-family/c-attribs.c:4031
0xa121bf cp_parser_has_attribute_expression
        /ssd/src/gcc/svn/gcc/cp/parser.c:8519
0xa112a2 cp_parser_unary_expression
        /ssd/src/gcc/svn/gcc/cp/parser.c:8132
0xa133d7 cp_parser_cast_expression
        /ssd/src/gcc/svn/gcc/cp/parser.c:9281
0xa134bb cp_parser_binary_expression
        /ssd/src/gcc/svn/gcc/cp/parser.c:9382
0xa1438c cp_parser_assignment_expression
        /ssd/src/gcc/svn/gcc/cp/parser.c:9677
0xa1473c cp_parser_expression
        /ssd/src/gcc/svn/gcc/cp/parser.c:9846
0xa1b527 cp_parser_jump_statement
        /ssd/src/gcc/svn/gcc/cp/parser.c:12778
0xa174e2 cp_parser_statement
        /ssd/src/gcc/svn/gcc/cp/parser.c:11060
0xa18499 cp_parser_statement_seq_opt
        /ssd/src/gcc/svn/gcc/cp/parser.c:11526
0xa1838d cp_parser_compound_statement
        /ssd/src/gcc/svn/gcc/cp/parser.c:11480
0xa2da81 cp_parser_function_body
        /ssd/src/gcc/svn/gcc/cp/parser.c:22361
0xa2dc72 cp_parser_ctor_initializer_opt_and_function_body
        /ssd/src/gcc/svn/gcc/cp/parser.c:22396
0xa37e4a cp_parser_function_definition_after_declarator
        /ssd/src/gcc/svn/gcc/cp/parser.c:27449
0xa37c75 cp_parser_function_definition_from_specifiers_and_declarator
        /ssd/src/gcc/svn/gcc/cp/parser.c:27366
0xa29339 cp_parser_init_declarator
        /ssd/src/gcc/svn/gcc/cp/parser.c:20051
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to