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

            Bug ID: 115338
           Summary: Missing -Wpedantic warning for class-specifier for
                    nested type in class scope.
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: email at miropalmu dot cc
  Target Milestone: ---

Following compiles on a GCC 15.0.0 20240604 without warnings with flags
-std=c++26 -Wall -Wextra -Wpedantic (https://godbolt.org/z/zeYdKMj9a):

```
struct Foo {
    struct Bar {
        struct Mar;
    };
    struct Bar::Mar {};
};
```

However it should be ill-formed or at least give warning with -Wpedantic,
as [class.pre] states (https://eel.is/c++draft/class.pre#3):

> If a class-head-name contains a nested-name-specifier,
> the class-specifier shall not inhabit a class scope.

`Bar::Mar` is a class-head-name and `bar::` is a nested-name-specifier.

Reply via email to