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

            Bug ID: 121657
           Summary: wrong parsing of alignas in struct declaration
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hanicka at hanicka dot net
  Target Milestone: ---

Following code fails:

```c++
struct A { constexpr static int z = 4; };

consteval int get() {
    return A{}.z;
}
struct alignas(A{}.z) B {};
struct alignas(get()) C {};
```

with error:

```text
<source>:6:17: error: expected ')' before '{' token
    6 | struct alignas(A{}.z) B {};
      |               ~ ^
      |                 )
<source>:6:19: error: expected ';' after struct definition
    6 | struct alignas(A{}.z) B {};
      |                   ^
      |                   ;
<source>:6:18: error: abstract declarator '<unnamed struct>' used as
declaration
    6 | struct alignas(A{}.z) B {};
      |                  ^
<source>:6:19: error: expected unqualified-id before '.' token
    6 | struct alignas(A{}.z) B {};
      |                   ^
Compiler returned: 1
```

(link: https://godbolt.org/z/9Tja4oo3E)

Reply via email to