https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106937
Bug ID: 106937 Summary: [10/11/12/13 Regression] ICE tree check: expected identifier_node, have tree_list in pp_tree_identifier, at tree-pretty-print.cc:4606 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Started with r10 around 20190623, file reduced from llvm-project-llvmorg-14.0.6/clang/test/Sema/attr-nocf_check.cpp : (gcc configured with --enable-checking=yes) $ cat z1.cc [[gnu::nocf_check]] typedef void (*FuncPointerWithNoCfCheck)(void); typedef void (*FuncPointer)(void); [[gnu::nocf_check]] void testNoCfCheck(); void testNoCfCheck(){}; int [[gnu::nocf_check]] i; void testNoCfCheckImpl(double i [[gnu::nocf_check]]) {} void testNoCfCheckMismatch(FuncPointer f) { FuncPointerWithNoCfCheck fNoCfCheck = f; (*fNoCfCheck)(); } $ g++-13-20220911 -c z1.cc -fcf-protection z1.cc:5:5: warning: attribute ignored [-Wattributes] 5 | int [[gnu::nocf_check]] i; | ^ z1.cc:5:5: note: an attribute that appertains to a type-specifier is ignored z1.cc:6:51: warning: 'nocf_check' attribute only applies to function types [-Wattributes] 6 | void testNoCfCheckImpl(double i [[gnu::nocf_check]]) {} | ^ In function 'void testNoCfCheckMismatch(FuncPointer)': tree check: expected identifier_node, have tree_list in pp_tree_identifier, at tree-pretty-print.cc:4606 8 | FuncPointerWithNoCfCheck fNoCfCheck = f; | ^ 0x6fc2fc tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.cc:8827 0x12b5d03 tree_check(tree_node*, char const*, int, char const*, tree_code) ../../gcc/tree.h:3520 0x12b5d03 pp_tree_identifier(pretty_printer*, tree_node*) ../../gcc/tree-pretty-print.cc:4606 0xbcd38a pp_c_attributes_display(c_pretty_printer*, tree_node*) ../../gcc/c-family/c-pretty-print.cc:909 0x91332e dump_type_prefix ../../gcc/cp/error.cc:904 0x913c83 dump_type ../../gcc/cp/error.cc:664 0x91ff6f type_to_string ../../gcc/cp/error.cc:3411 0x923847 cxx_format_postprocessor::handle(pretty_printer*) ../../gcc/cp/error.cc:4348 0x21da278 pp_format(pretty_printer*, text_info*) ../../gcc/pretty-print.cc:1496 0x21b9f10 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*) ../../gcc/diagnostic.cc:1548 0x21ba65a diagnostic_impl ../../gcc/diagnostic.cc:1712 0x21bcdea permerror(rich_location*, char const*, ...) ../../gcc/diagnostic.cc:1994 0x80f736 convert_like_internal ../../gcc/cp/call.cc:7950 0x80ac97 convert_like ../../gcc/cp/call.cc:8501 0x80ac97 perform_implicit_conversion_flags(tree_node*, tree_node*, int, int) ../../gcc/cp/call.cc:12791 0xb40d82 convert_for_assignment ../../gcc/cp/typeck.cc:10050 0xb414b2 convert_for_initialization(tree_node*, tree_node*, tree_node*, int, impl_conv_rhs, tree_node*, int, int) ../../gcc/cp/typeck.cc:10141 0xb4bf1a digest_init_r ../../gcc/cp/typeck2.cc:1358 0xb4f100 digest_init_flags(tree_node*, tree_node*, int, int) ../../gcc/cp/typeck2.cc:1371 0xb4f100 store_init_value(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ../../gcc/cp/typeck2.cc:842