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

            Bug ID: 90961
           Summary: awful diagnostics for noexcept-expression with type
                    name
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mpolacek at gcc dot gnu.org
  Target Milestone: ---

For

static_assert(noexcept(void));

we generate a host of bogus errors:

q2.C:1:24: error: expected primary-expression before ‘void’
    1 | static_assert(noexcept(void));
      |                        ^~~~
q2.C:1:24: error: expected ‘)’ before ‘void’
    1 | static_assert(noexcept(void));
      |                       ~^~~~
      |                        )
q2.C:1:24: error: expected ‘,’ before ‘void’
    1 | static_assert(noexcept(void));
      |                        ^~~~
      |                        ,
q2.C:1:24: error: expected string-literal before ‘void’
    1 | static_assert(noexcept(void));
      |                        ^~~~
q2.C:1:24: error: expected ‘)’ before ‘void’
    1 | static_assert(noexcept(void));
      |              ~         ^~~~
      |                        )
q2.C:1:29: error: expected ‘;’ before ‘)’ token
    1 | static_assert(noexcept(void));
      |                             ^
      |                             ;
q2.C:1:29: error: expected unqualified-id before ‘)’ token

Instead, we should generate one error saying something like "type names not
allowed".

Reply via email to