https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107558
Bug ID: 107558 Summary: [10/11/12/13 Regression] ICE in fld_incomplete_type_of, at ipa-free-lang-data.cc:258 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 r9, between 20200508 and 20200612, reduced from file llvm-project-llvmorg-14.0.6/clang/test/OpenMP/nvptx_lambda_capturing.cpp : $ cat z1.cc template <typename T> int foo(const T &t) { #pragma omp target parallel t(); return 0; } struct S { int a = 15; int foo() { auto &&L = [&]() { return a; }; #pragma omp target L(); #pragma omp target parallel L(); return a + ::foo(L); } } s; int main(int argc, char **argv) { int &b = argc; int &&c = 1; int *d = &argc; int a; auto &&L = [&]() { return argc + b + c + reinterpret_cast<long int>(d) + a; }; #pragma omp target firstprivate(argc) map(to : a) L(); #pragma omp target parallel L(); return argc + s.foo(); } $ cat z2.cc int a = 15; int foo() { auto &&L = [&]() { return a; }; #pragma omp target parallel L(); } $ gcc-13-20221106 -c z2.cc -fopenmp -flto -fmerge-all-constants z2.cc: In function 'int foo()': z2.cc:6:1: warning: no return statement in function returning non-void [-Wreturn-type] 6 | } | ^ during IPA pass: *free_lang_data z2.cc: At global scope: z2.cc:6:1: internal compiler error: in fld_incomplete_type_of, at ipa-free-lang-data.cc:258 0x1aa1387 fld_incomplete_type_of ../../gcc/ipa-free-lang-data.cc:257 0x1aa26dd fld_simplified_type ../../gcc/ipa-free-lang-data.cc:344 0x1aa26dd free_lang_data_in_decl ../../gcc/ipa-free-lang-data.cc:653 0x1aa26dd free_lang_data_in_cgraph ../../gcc/ipa-free-lang-data.cc:1068 0x1aa26dd free_lang_data ../../gcc/ipa-free-lang-data.cc:1109 0x1aa26dd execute ../../gcc/ipa-free-lang-data.cc:1176