https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115080
Bug ID: 115080 Summary: ICE when generating debug information for lambda in requires expression Product: gcc Version: 14.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: cmingyi01 at gmail dot com Target Milestone: --- The following C++20 code triggers an ICE on gcc-12 onwards, including trunk. struct Foo { template <class T> requires requires { [] {}; } struct Bar { T data; }; Bar<int> b; }; int main() {} (See Compiler Explorer: https://godbolt.org/z/E911brobo) Required command line flags: -std=c++20 -g Compiler output: <source>: In substitution of 'template<class T> requires requires{<lambda>;} struct Foo::Bar [with T = int]': <source>:7:12: required from here 7 | Bar<int> b; | ^ <source>:3:25: internal compiler error: in gen_type_die_with_usage, at dwarf2out.cc:26507 3 | requires requires { [] {}; } | ^~~~~ 0x202ef4c internal_error(char const*, ...) ???:0 0x778915 fancy_abort(char const*, int, char const*) ???:0 0xe3581e rest_of_type_compilation(tree_node*, int) ???:0 0x7b9d56 finish_struct_1(tree_node*) ???:0 0x7bb0b4 finish_struct(tree_node*, tree_node*) ???:0 0x943ec2 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) ???:0 0x7dc716 tsubst_requires_expr(tree_node*, tree_node*, int, tree_node*) ???:0 0x7dde08 constraints_satisfied_p(tree_node*, tree_node*) ???:0 0x937c61 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ???:0 0x95f671 finish_template_type(tree_node*, tree_node*, int) ???:0 0x90e414 c_parse_file() ???:0 0xa0c4d9 c_common_parse_file() ???:0 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Compiler returned: 1