restrictions on symbol names?

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

http://llvm.org/docs/LangRef.html#identifiers

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