summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/include/lld/ReaderWriter/LinkerScript.h1
-rw-r--r--lld/lib/ReaderWriter/LinkerScript.cpp14
-rw-r--r--lld/test/LinkerScript/linker-script.test6
3 files changed, 10 insertions, 11 deletions
diff --git a/lld/include/lld/ReaderWriter/LinkerScript.h b/lld/include/lld/ReaderWriter/LinkerScript.h
index ecd9e4793d3..50dd627cc7c 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 064f6c9ecfb..796fa24a566 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 59d2a184c64..a050c5637a5 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: (
OpenPOWER on IntegriCloud