Asm-name-spec
Fixtype of GCC assembler name specifiers.
This is a product type introduced by fty::defprod.
Fields
- strings — stringlit-list
- uscores — booleanp
This captures the construct to specify assembler names. It consists of the keyword asm or __asm__
and a parenthesized string literal.
Since adjacent string literals may be concatenated [C:5.1.1.2/6],
we allow a list of string literals here;
this way, we preserve the fact that there were adjacent string literals.
Indeed, we have observed multiple (two, to be precise)
string literals in this construct in practical code.
We also capture whether the plain asm keyword was used
or whether the one with underscores, __asm__ was used instead.
The GCC documentation does not provide a clear term
to denote this construct,
although the URL suggests that it is an `assembler label';
but the text does not mention that term.
Note that this is not the only kind of assembler construct
in GCC extensions; there are others.
So we use the term `assembler name specifier' for this construct,
since it specifies the assembler name (of an identifier).
Subtopics
- Asm-name-spec-fix
- Fixing function for asm-name-spec structures.
- Asm-name-spec-equiv
- Basic equivalence relation for asm-name-spec structures.
- Make-asm-name-spec
- Basic constructor macro for asm-name-spec structures.
- Asm-name-spec->strings
- Get the strings field from a asm-name-spec.
- Asm-name-spec->uscores
- Get the uscores field from a asm-name-spec.
- Change-asm-name-spec
- Modifying constructor for asm-name-spec structures.
- Asm-name-specp
- Recognizer for asm-name-spec structures.