Fixtype of labels [C17:6.8.1] [C17:A.2.3].
This is a tagged union type, introduced by fty::deftagsum.
This does not directly correspond to
any nonterminal in the grammar in [C17],
but it captures the three initial portions of
the grammar rule for labeled-statement.
There are three possible kinds of labels:
names (identifiers),
constant expressions in
As a GCC extension, we allow label attributes (see ABNF grammar).
As a GCC extension,
we allow an optional additional constant expression in