https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108174
Bug ID: 108174 Summary: ICE: tree check: expected function_type or method_type, have ggc_freed in aarch64_resolve_overloaded_memtag, at config/aarch64/aarch64-builtins.cc:3349 Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: aarch64-linux-gnu gcc 13.0.0 20221211 snapshot (g:fd69977febf399d1992bbf8d66ae9170e0a4dc9f) ICEs when compiling gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c w/ -march=armv9-a+memtag -std=c2x -fopenmp -g --param ggc-min-expand=3 --param ggc-min-heapsize=1 (but these options seem to be host or target-dependent). Full compiler output with Valgrind report is attached, as it is a bit bulky to post it inline. I've tried to reduce the testcase, but could remove only a couple of lines. % aarch64-linux-gnu-gcc-13 -march=armv9-a+memtag -std=c2x -fopenmp -g -w --param ggc-min-expand=3 --param ggc-min-heapsize=1 -c gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c <diagnostics trimmed> gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c:67:3: internal compiler error: tree check: expected function_type or method_type, have ggc_freed in aarch64_resolve_overloaded_memtag, at config/aarch64/aarch64-builtins.cc:3349 67 | __arm_mte_ptrdiff(no_decl2, 0); /* { dg-error {} } */ | ^~~~~~~~~~~~~~~~~ 0x7c8d41 tree_check_failed(tree_node const*, char const*, int, char const*, ...) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/tree.cc:8822 0x7ef700 tree_check2(tree_node*, char const*, int, char const*, tree_code, tree_code) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/tree.h:3547 0x7ef700 aarch64_resolve_overloaded_memtag /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/config/aarch64/aarch64-builtins.cc:3349 0x7ef700 aarch64_resolve_overloaded_builtin_general(unsigned int, tree_node*, void*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/config/aarch64/aarch64-builtins.cc:3432 0x9b95ce aarch64_resolve_overloaded_builtin /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/config/aarch64/aarch64-c.cc:317 0x8d51c7 c_build_function_call_vec(unsigned int, vec<unsigned int, va_heap, vl_ptr> const&, tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*, va_gc, vl_embed>*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-typeck.cc:3383 0x8f6511 c_parser_postfix_expression_after_primary /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:11245 0x8ec4d4 c_parser_postfix_expression /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:10857 0x8f09da c_parser_unary_expression /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:8840 0x8f257b c_parser_cast_expression /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:8681 0x8f2872 c_parser_binary_expression /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:8449 0x8f3d0e c_parser_conditional_expression /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:8147 0x8f4557 c_parser_expr_no_commas /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:8061 0x8f4821 c_parser_expression /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:11385 0x8f4feb c_parser_expression_conv /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:11425 0x8e9957 c_parser_statement_after_labels /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:6790 0x8ebeb4 c_parser_compound_statement_nostart /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:6305 0x912224 c_parser_compound_statement /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:6114 0x9143d1 c_parser_declaration_or_fndef /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:2850 0x91bf53 c_parser_external_declaration /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20221218/work/gcc-13-20221218/gcc/c/c-parser.cc:1925