mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 02:33:33 +00:00
Prevent assert when using '"' in names (via hexadecimal).
Update LangRef to mention \xx quoting in names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57538 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cad3580e99
commit
76dea9547d
@ -335,8 +335,9 @@ the parser.</p>
|
||||
For example, %foo, @DivisionByZero, %a.really.long.identifier. The actual
|
||||
regular expression used is '<tt>[%@][a-zA-Z$._][a-zA-Z$._0-9]*</tt>'.
|
||||
Identifiers which require other characters in their names can be surrounded
|
||||
with quotes. In this way, anything except a <tt>"</tt> character can
|
||||
be used in a named value.</li>
|
||||
with quotes. Special characters may be escaped using "\xx" where xx is the
|
||||
ASCII code for the character in hexadecimal. In this way, any character can
|
||||
be used in a name value, even quotes themselves.
|
||||
|
||||
<li>Unnamed values are represented as an unsigned numeric value with their
|
||||
prefix. For example, %12, @2, %44.</li>
|
||||
|
@ -112,10 +112,9 @@ static void PrintLLVMName(raw_ostream &OS, const char *NameStr,
|
||||
OS << '"';
|
||||
for (unsigned i = 0; i != NameLen; ++i) {
|
||||
char C = NameStr[i];
|
||||
assert(C != '"' && "Illegal character in LLVM value name!");
|
||||
if (C == '\\') {
|
||||
OS << "\\\\";
|
||||
} else if (isprint(C)) {
|
||||
} else if (C != '"' && isprint(C)) {
|
||||
OS << C;
|
||||
} else {
|
||||
OS << '\\';
|
||||
|
3
test/Assembler/2008-10-14-QuoteInName.ll
Normal file
3
test/Assembler/2008-10-14-QuoteInName.ll
Normal file
@ -0,0 +1,3 @@
|
||||
; RUN: llvm-as < %s | llvm-dis | grep "quote"
|
||||
|
||||
@"a\22quote" = global i32 0
|
Loading…
x
Reference in New Issue
Block a user