I can't find a reference (LLVM or ABI specs) as to what restrictions
there are on symbol names (for functions and global variables). I want
to know what characters are allowed. For C exports I know I must stick
to the C format, but for symbols private to my libraries I can do
something else. Where might I find a reference for this?
edA-qa mort-ora-y <eda-qa@disemia.com> writes:
I can't find a reference (LLVM or ABI specs) as to what restrictions
there are on symbol names (for functions and global variables). I want
to know what characters are allowed. For C exports I know I must stick
to the C format, but for symbols private to my libraries I can do
something else. Where might I find a reference for this?
In my experience, the most restrictive part is the object format (ELF,
COFF, etc.)
LLVM proper is quite liberal on this regard. See
You may also encounter problems with the assembler, if you're not using the LLVM integrated assembler. I had problems in the past with the Darwin assembler being unable to handle certain non-alphanumeric characters. Binutils assemblers on various platforms also have limitations that tend not to be well documented.
David