Implement test/Feature/escaped_label.ll
authorChris Lattner <sabre@nondot.org>
Fri, 10 Dec 2004 05:27:29 +0000 (05:27 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 10 Dec 2004 05:27:29 +0000 (05:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18741 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/Lexer.l

index 072bc159d837afd50a067c14896b38b26cb4628e..da875be34bd7b859df585670a86016e5c1aa2cd2 100644 (file)
@@ -139,6 +139,7 @@ VarID       %[-a-zA-Z$._][-a-zA-Z$._0-9]*
 
 /* Label identifiers end with a colon */
 Label       [-a-zA-Z$._0-9]+:
+QuoteLabel \"[^\"]*\":
 
 /* Quoted names can contain any character except " and \ */
 StringConstant \"[^\"]*\"
@@ -269,6 +270,12 @@ getelementptr   { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
                  llvmAsmlval.StrVal = strdup(yytext);
                  return LABELSTR; 
                 }
+{QuoteLabel}    {
+                  yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
+                  UnEscapeLexed(yytext+1);
+                 llvmAsmlval.StrVal = strdup(yytext+1);
+                 return LABELSTR; 
+                }
 
 {StringConstant} { // Note that we cannot unescape a string constant here!  The
                    // string constant might contain a \00 which would not be