[lld] r202166 - [LinkerScript] parse OUTPUT_FORMAT : treat quotedStrings as identifier

Shankar Easwaran shankare at codeaurora.org
Tue Feb 25 09:02:55 PST 2014


Author: shankare
Date: Tue Feb 25 11:02:54 2014
New Revision: 202166

URL: http://llvm.org/viewvc/llvm-project?rev=202166&view=rev
Log:
[LinkerScript] parse OUTPUT_FORMAT : treat quotedStrings as identifier

Modified:
    lld/trunk/include/lld/ReaderWriter/LinkerScript.h
    lld/trunk/lib/ReaderWriter/LinkerScript.cpp
    lld/trunk/test/LinkerScript/linker-script.test

Modified: lld/trunk/include/lld/ReaderWriter/LinkerScript.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/LinkerScript.h?rev=202166&r1=202165&r2=202166&view=diff
==============================================================================
--- lld/trunk/include/lld/ReaderWriter/LinkerScript.h (original)
+++ lld/trunk/include/lld/ReaderWriter/LinkerScript.h Tue Feb 25 11:02:54 2014
@@ -37,7 +37,6 @@ public:
     eof,
     identifier,
     comma,
-    quotedString,
     l_paren,
     r_paren,
     kw_entry,

Modified: lld/trunk/lib/ReaderWriter/LinkerScript.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/LinkerScript.cpp?rev=202166&r1=202165&r2=202166&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/LinkerScript.cpp (original)
+++ lld/trunk/lib/ReaderWriter/LinkerScript.cpp Tue Feb 25 11:02:54 2014
@@ -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);

Modified: lld/trunk/test/LinkerScript/linker-script.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/LinkerScript/linker-script.test?rev=202166&r1=202165&r2=202166&view=diff
==============================================================================
--- lld/trunk/test/LinkerScript/linker-script.test (original)
+++ lld/trunk/test/LinkerScript/linker-script.test Tue Feb 25 11:02:54 2014
@@ -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: (





More information about the llvm-commits mailing list