summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/ScriptParser.cpp7
-rw-r--r--lld/test/ELF/linkerscript/memory.s2
2 files changed, 2 insertions, 7 deletions
diff --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp
index 0ba00a2ae35..155b08a26ac 100644
--- a/lld/ELF/ScriptParser.cpp
+++ b/lld/ELF/ScriptParser.cpp
@@ -1102,12 +1102,7 @@ uint64_t ScriptParser::readMemoryAssignment(StringRef S1, StringRef S2,
return 0;
}
expect("=");
-
- // TODO: Fully support constant expressions.
- if (Optional<uint64_t> Val = parseInt(next()))
- return *Val;
- setError("nonconstant expression for " + S1);
- return 0;
+ return readExpr()().getValue();
}
// Parse the MEMORY command as specified in:
diff --git a/lld/test/ELF/linkerscript/memory.s b/lld/test/ELF/linkerscript/memory.s
index 1b7562aca14..774a6f92ab1 100644
--- a/lld/test/ELF/linkerscript/memory.s
+++ b/lld/test/ELF/linkerscript/memory.s
@@ -18,7 +18,7 @@
# RUN: echo "MEMORY { \
# RUN: ram (rwx) : ORIGIN = 0, LENGTH = 1024M \
-# RUN: rom (rx) : org = 0x80000000, len = 64M \
+# RUN: rom (rx) : org = (0x80 * 0x1000 * 0x1000), len = 64M \
# RUN: } \
# RUN: SECTIONS { \
# RUN: .text : { *(.text) } > rom \
OpenPOWER on IntegriCloud