[lld] edcc60e - [ELF] Simplify readAssignment

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 27 16:04:42 PDT 2024


Author: Fangrui Song
Date: 2024-07-27T16:04:38-07:00
New Revision: edcc60e403703904fcb1425f31a9c20ab0d90f43

URL: https://github.com/llvm/llvm-project/commit/edcc60e403703904fcb1425f31a9c20ab0d90f43
DIFF: https://github.com/llvm/llvm-project/commit/edcc60e403703904fcb1425f31a9c20ab0d90f43.diff

LOG: [ELF] Simplify readAssignment

After #100493, the `=` support from
fe0de25b2195b66d1ebac5d3ebdb18f9e1e776da can be simplified.

Added: 
    

Modified: 
    lld/ELF/ScriptParser.cpp

Removed: 
    


################################################################################
diff  --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp
index b80db28764fd3..d9193c404ec67 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) {


        


More information about the llvm-commits mailing list