https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111247

            Bug ID: 111247
           Summary: Very confusing diagnostic when attempting to
                    initialize an incomplete type: "too many initializers"
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chgros at synopsys dot com
  Target Milestone: ---

Compiling this code with g++ 12 gives a very misleading diagnostic when
attempting to initialize an incomplete type:

class Incomplete;
void use(Incomplete &&);

void bad()
{
    use(Incomplete{0, 2});
}

error: too many initializers for 'Incomplete'
    7 |     use(Incomplete{0, 2});

It took me a while to figure out I was missing a header.

Reply via email to