https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91098
Bug ID: 91098 Summary: [10 Regression] internal compiler error: tree check: expected var_decl or field_decl or function_decl or type_decl or template_decl, have using_decl in build_deduction_guide, at cp/pt.c:27167 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- This was rejected by GCC 9 but gives an ICE with trunk: // { dg-options "-std=gnu++17" } template<typename T, bool = true> struct base; template<typename T> struct base<T, true> { base(T& t) : p(&t) { } base(const base&) = delete; T* p; }; template<typename T> struct atomic_ref : base<T> { using base<T>::base; }; int main() { int i = 0; atomic_ref r(i); } ctad_ice.cc: In function 'int main()': ctad_ice.cc:22:17: internal compiler error: tree check: expected var_decl or field_decl or function_decl or type_decl or template_decl, have using_decl in build_deduction_guide, at cp/pt.c:27167 22 | atomic_ref r(i); | ^ 0x77ec68 tree_check_failed(tree_node const*, char const*, int, char const*, ...) /home/jwakely/src/gcc/gcc/gcc/tree.c:9897 0x98461c tree_check5(tree_node*, char const*, int, char const*, tree_code, tree_code, tree_code, tree_code, tree_code) /home/jwakely/src/gcc/gcc/gcc/tree.h:3288 0x98461c build_deduction_guide /home/jwakely/src/gcc/gcc/gcc/cp/pt.c:27167 0x9851e0 do_class_deduction /home/jwakely/src/gcc/gcc/gcc/cp/pt.c:27399 0x9851e0 do_auto_deduction(tree_node*, tree_node*, tree_node*, int, auto_deduction_context, tree_node*, int) /home/jwakely/src/gcc/gcc/gcc/cp/pt.c:27533 0x8c083f cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int) /home/jwakely/src/gcc/gcc/gcc/cp/decl.c:7018 0x96376b cp_parser_init_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:20491 0x945c6f cp_parser_simple_declaration /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13525 0x947989 cp_parser_declaration_statement /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:12955 0x9485d3 cp_parser_statement /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11284 0x949500 cp_parser_statement_seq_opt /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11646 0x9495d7 cp_parser_compound_statement /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11600 0x962500 cp_parser_function_body /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22624 0x962500 cp_parser_ctor_initializer_opt_and_function_body /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22675 0x962d86 cp_parser_function_definition_after_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:27776 0x963b1e cp_parser_function_definition_from_specifiers_and_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:27692 0x963b1e cp_parser_init_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:20261 0x945c6f cp_parser_simple_declaration /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13525 0x96a402 cp_parser_declaration /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13222 0x96abaf cp_parser_translation_unit /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:4690 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.