https://sourceware.org/bugzilla/show_bug.cgi?id=33336
Bug ID: 33336 Summary: gas: Clarify whitespace between a label’s symbol and its colon Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: i at maskray dot me Target Milestone: --- https://sourceware.org/binutils/docs/as/Statements.html specifies > A label is a symbol immediately followed by a colon (:). Whitespace before a > label or after a colon is permitted, **but you may not have whitespace > between a label’s symbol and its colon**. See Labels. According to this description, the following assembly should not be permitted: f :op:nop However, this is identical to `f: op: nop` and will be assembled as two labels with a nop instruction (in at least x86, aarch64, powerpc64; I believe this likely applies to most targets). LLVM integrated assembler interprets this the same way. If we are not going to change the implementation regarding labels, I think we should clarify the documentation. --- Context: AArch32 and AArch64 adopt this colon-framed prefix notation, avoiding the confusion that parentheses might introduce. // AArch32 movw r0, :lower16:x // AArch64 add x8, x8, :lo12:sym Applying this syntax to the first operand, however, could create parsing ambiguity. In https://maskray.me/blog/2025-03-16-relocation-generation-in-assemblers , I am suggesting that data directives switch to %specifier(expr). -- You are receiving this mail because: You are on the CC list for the bug.