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.

Reply via email to