https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100246
Bug ID: 100246 Summary: [11/12 Regression] GCC will not bootstrap with clang 3.4/3.5 [xcode 5/6, Darwin 12/13] Product: gcc Version: 10.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: iains at gcc dot gnu.org Target Milestone: --- using CC=clang and CXX="clang++ -stdlib=libc++" which is needed to get C++11 support. In file included from /src-local/gcc-git-11/gcc/config/i386/i386-options.c:94: /src-local/gcc-git-11/gcc/config/i386/x86-tune-costs.h:363:13: error: call to implicitly-deleted default constructor of 'const struct stringop_strategy' {libcall, {{-1, rep_prefix_4_byte, false}}}, ^ /src-local/gcc-git-11/gcc/config/i386/i386.h:254:15: note: default constructor of 'stringop_strategy' is implicitly deleted because field 'max' of const-qualified type 'const int' would not be initialized const int max; ==== when building in c++89 mode, (GCC10.x and earlier) this worked fine. It does look like a clang bug (but the rules are quite complex around this topic). It would seem it's trying to find a constructor for the empty elements in the lists (and that is implicitly deleted). ==== A workaround is to ensure that all the elements have a complete initialisers with dummy entries for those that are not needed. Patch pending.