diff options
| author | Rui Ueyama <ruiu@google.com> | 2017-12-26 10:13:10 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2017-12-26 10:13:10 +0000 |
| commit | c67d6b2da0a651a48408ca03ee2edc1bc9a3c29a (patch) | |
| tree | e9550408929d60259c2d8c8ea8d752b949d8a225 | |
| parent | 162439dcdf1d5ec17a7a140695e9c3ce33b830e7 (diff) | |
| download | bcm5719-llvm-c67d6b2da0a651a48408ca03ee2edc1bc9a3c29a.tar.gz bcm5719-llvm-c67d6b2da0a651a48408ca03ee2edc1bc9a3c29a.zip | |
Simplify script lexer.
Differential Revision: https://reviews.llvm.org/D41577
llvm-svn: 321453
| -rw-r--r-- | lld/ELF/ScriptLexer.cpp | 10 | ||||
| -rw-r--r-- | lld/ELF/ScriptParser.cpp | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/lld/ELF/ScriptLexer.cpp b/lld/ELF/ScriptLexer.cpp index 9f33c16f36b..ef5a1cff759 100644 --- a/lld/ELF/ScriptLexer.cpp +++ b/lld/ELF/ScriptLexer.cpp @@ -115,11 +115,19 @@ void ScriptLexer::tokenize(MemoryBufferRef MB) { continue; } + // ">foo" is parsed to ">" and "foo", but ">>" is parsed to ">>". + if (S.startswith("<<") || S.startswith("<=") || S.startswith(">>") || + S.startswith(">=")) { + Vec.push_back(S.substr(0, 2)); + S = S.substr(2); + continue; + } + // Unquoted token. This is more relaxed than tokens in C-like language, // so that you can write "file-name.cpp" as one bare token, for example. size_t Pos = S.find_first_not_of( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" - "0123456789_.$/\\~=+[]*?-!<>^:"); + "0123456789_.$/\\~=+[]*?-!^:"); // A character that cannot start a word (which is usually a // punctuation) forms a single character token. diff --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp index c1176ccfa8d..f8a44940a9f 100644 --- a/lld/ELF/ScriptParser.cpp +++ b/lld/ELF/ScriptParser.cpp @@ -707,8 +707,6 @@ OutputSection *ScriptParser::readOutputSectionDescription(StringRef OutSec) { if (consume(">")) Cmd->MemoryRegionName = next(); - else if (peek().startswith(">")) - Cmd->MemoryRegionName = next().drop_front(); Cmd->Phdrs = readOutputSectionPhdrs(); |

