aboutsummaryrefslogtreecommitdiff
path: root/lld/ELF/ScriptParser.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2024-07-27 16:04:38 -0700
committerFangrui Song <i@maskray.me>2024-07-27 16:04:38 -0700
commitedcc60e403703904fcb1425f31a9c20ab0d90f43 (patch)
tree0934ec43804e600db23a09838e4b3b0119792653 /lld/ELF/ScriptParser.cpp
parent745de9ef2071d9702343faf738b48381d83a0e00 (diff)
downloadllvm-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.cpp29
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) {