[llvm-dev] about in function name

Peng Yu via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 28 09:21:37 PST 2019


Hi,

The langref says the following. I am not sure I understand it completely.

- What "Special characters" mean? Does it mean ASCII code less than 32?
- For ASCII code >=32, can the \xx form still be used?
- So " should be represented by \x22, but not \"? What about the slash
\ character?
- Is the prefix \01 consider part of the identifier or not?

"""
Identifiers that require other characters in their names can be
surrounded with quotes. Special characters may be escaped using "\xx"
where xx is the ASCII code for the character in hexadecimal.

The "\01" prefix can be used on global values to suppress mangling.
"""

In a .ll file generated from .bc (which is extracted from an
executable that was compiled using the configure/make toolchain with
gllvm), I see things like the following.

define i32 @"\01_putenv"(i8*) #0 !dbg !145238 {
define i32 @"\01_setenv"(i8*, i8*, i32) #0 !dbg !145299 {
define i32 @"\01_unsetenv"(i8*) #0 !dbg !145357 {

But I don't find _putenv, _setenv and _unsetenv anywhere else in the
.ll file. Can I be sure that these functions are not called? (I am not
sure if the call to these functions would refer to these identifiers
literally or not.) Thanks.

-- 
Regards,
Peng


More information about the llvm-dev mailing list