type-assignment-operator:
:=
-constant-expression:
- unary-expression
-
constant-expression-range:
- constant-expression ... constant-expression
+ unary-expression ... unary-expression
2.2) Declarations:
ctf-type-specifier
align-attribute:
- align ( constant-expression )
+ align ( unary-expression )
struct-specifier:
struct identifier-opt { struct-or-variant-declaration-list-opt } align-attribute-opt
struct-or-variant-declarator:
declarator
- declarator-opt : constant-expression
+ declarator-opt : unary-expression
variant-specifier:
variant identifier-opt variant-tag-opt { struct-or-variant-declaration-list }
enumerator:
enumeration-constant
- enumeration-constant = constant-expression
+ enumeration-constant = unary-expression
enumeration-constant = constant-expression-range
type-qualifier:
identifier
( declarator )
direct-declarator [ unary-expression ]
- direct-declarator [ constant-expression ]
abstract-declarator:
pointer-opt direct-abstract-declarator
identifier-opt
( abstract-declarator )
direct-abstract-declarator [ unary-expression ]
- direct-abstract-declarator [ constant-expression ]
direct-abstract-declarator [ ]
pointer: