From a3283443675143ad384cdab710b1c04945f9f368 Mon Sep 17 00:00:00 2001 From: Shankar Easwaran Date: Tue, 25 Feb 2014 17:02:54 +0000 Subject: [PATCH] [LinkerScript] parse OUTPUT_FORMAT : treat quotedStrings as identifier llvm-svn: 202166 --- lld/include/lld/ReaderWriter/LinkerScript.h | 1 - lld/lib/ReaderWriter/LinkerScript.cpp | 14 +++++++------- lld/test/LinkerScript/linker-script.test | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/lld/include/lld/ReaderWriter/LinkerScript.h b/lld/include/lld/ReaderWriter/LinkerScript.h index ecd9e4793d30..50dd627cc7c1 100644 --- a/lld/include/lld/ReaderWriter/LinkerScript.h +++ b/lld/include/lld/ReaderWriter/LinkerScript.h @@ -37,7 +37,6 @@ public: eof, identifier, comma, - quotedString, l_paren, r_paren, kw_entry, diff --git a/lld/lib/ReaderWriter/LinkerScript.cpp b/lld/lib/ReaderWriter/LinkerScript.cpp index 064f6c9ecfba..796fa24a5668 100644 --- a/lld/lib/ReaderWriter/LinkerScript.cpp +++ b/lld/lib/ReaderWriter/LinkerScript.cpp @@ -29,7 +29,6 @@ void Token::dump(raw_ostream &os) const { CASE(kw_group) CASE(kw_output_format) CASE(kw_output_arch) - CASE(quotedString) CASE(comma) CASE(l_paren) CASE(r_paren) @@ -106,7 +105,8 @@ void Lexer::lex(Token &tok) { _buffer = _buffer.drop_front(); return; default: - // Quoted strings ? + // Handle quoted strings. They are treated as identifiers for + // simplicity. if ((_buffer[0] == '\"') || (_buffer[0] == '\'')) { char c = _buffer[0]; _buffer = _buffer.drop_front(); @@ -114,7 +114,7 @@ void Lexer::lex(Token &tok) { if (quotedStringEnd == StringRef::npos || quotedStringEnd == 0) break; StringRef word = _buffer.substr(0, quotedStringEnd); - tok = Token(word, Token::quotedString); + tok = Token(word, Token::identifier); _buffer = _buffer.drop_front(quotedStringEnd + 1); return; } @@ -238,8 +238,8 @@ OutputFormat *Parser::parseOutputFormat() { if (!expectAndConsume(Token::l_paren, "expected (")) return nullptr; - if (_tok._kind != Token::quotedString && _tok._kind != Token::identifier) { - error(_tok, "Expected identifier/string in OUTPUT_FORMAT."); + if (_tok._kind != Token::identifier) { + error(_tok, "Expected identifier in OUTPUT_FORMAT."); return nullptr; } @@ -251,8 +251,8 @@ OutputFormat *Parser::parseOutputFormat() { consumeToken(); else break; - if (_tok._kind != Token::quotedString && _tok._kind != Token::identifier) { - error(_tok, "Expected identifier/string in OUTPUT_FORMAT."); + if (_tok._kind != Token::identifier) { + error(_tok, "Expected identifier in OUTPUT_FORMAT."); return nullptr; } ret->addOutputFormat(_tok._range); diff --git a/lld/test/LinkerScript/linker-script.test b/lld/test/LinkerScript/linker-script.test index 59d2a184c64b..a050c5637a57 100644 --- a/lld/test/LinkerScript/linker-script.test +++ b/lld/test/LinkerScript/linker-script.test @@ -13,11 +13,11 @@ CHECK: identifier: i386:x86_64 CHECK: r_paren: ) CHECK: kw_output_format: OUTPUT_FORMAT CHECK: l_paren: ( -CHECK: quotedString: elf64-x86-64 +CHECK: identifier: elf64-x86-64 CHECK: comma: , -CHECK: quotedString: elf64-x86-64 +CHECK: identifier: elf64-x86-64 CHECK: comma: , -CHECK: quotedString: elf64-x86-64 +CHECK: identifier: elf64-x86-64 CHECK: r_paren: ) CHECK: kw_group: GROUP CHECK: l_paren: (