From c6c9772823e1eed0ebb2c825fb652f2de8345160 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 10 Dec 2004 05:27:29 +0000 Subject: [PATCH] Implement test/Feature/escaped_label.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18741 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/Lexer.l | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l index 072bc159d83..da875be34bd 100644 --- a/lib/AsmParser/Lexer.l +++ b/lib/AsmParser/Lexer.l @@ -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