diff options
author | Fangrui Song <i@maskray.me> | 2024-07-27 16:04:38 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2024-07-27 16:04:38 -0700 |
commit | edcc60e403703904fcb1425f31a9c20ab0d90f43 (patch) | |
tree | 0934ec43804e600db23a09838e4b3b0119792653 /lld/ELF/ScriptParser.cpp | |
parent | 745de9ef2071d9702343faf738b48381d83a0e00 (diff) | |
download | llvm-edcc60e403703904fcb1425f31a9c20ab0d90f43.zip llvm-edcc60e403703904fcb1425f31a9c20ab0d90f43.tar.gz llvm-edcc60e403703904fcb1425f31a9c20ab0d90f43.tar.bz2 |
[ELF] Simplify readAssignment
After #100493, the `=` support from
fe0de25b2195b66d1ebac5d3ebdb18f9e1e776da can be simplified.
Diffstat (limited to 'lld/ELF/ScriptParser.cpp')
-rw-r--r-- | lld/ELF/ScriptParser.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp index b80db28..d9193c4 100644 --- a/lld/ELF/ScriptParser.cpp +++ b/lld/ELF/ScriptParser.cpp @@ -1126,22 +1126,21 @@ SymbolAssignment *ScriptParser::readAssignment(StringRef tok) { SymbolAssignment *cmd = nullptr; bool savedSeenRelroEnd = script->seenRelroEnd; const StringRef op = peek(); - if (op.starts_with("=")) { - // Support = followed by an expression without whitespace. + { SaveAndRestore saved(inExpr, true); - cmd = readSymbolAssignment(tok); - } else if ((op.size() == 2 && op[1] == '=' && strchr("*/+-&^|", op[0])) || - op == "<<=" || op == ">>=") { - cmd = readSymbolAssignment(tok); - } else if (tok == "PROVIDE") { - SaveAndRestore saved(inExpr, true); - cmd = readProvideHidden(true, false); - } else if (tok == "HIDDEN") { - SaveAndRestore saved(inExpr, true); - cmd = readProvideHidden(false, true); - } else if (tok == "PROVIDE_HIDDEN") { - SaveAndRestore saved(inExpr, true); - cmd = readProvideHidden(true, true); + if (op.starts_with("=")) { + // Support = followed by an expression without whitespace. + cmd = readSymbolAssignment(tok); + } else if ((op.size() == 2 && op[1] == '=' && strchr("+-*/&^|", op[0])) || + op == "<<=" || op == ">>=") { + cmd = readSymbolAssignment(tok); + } else if (tok == "PROVIDE") { + cmd = readProvideHidden(true, false); + } else if (tok == "HIDDEN") { + cmd = readProvideHidden(false, true); + } else if (tok == "PROVIDE_HIDDEN") { + cmd = readProvideHidden(true, true); + } } if (cmd) { |