diff options
-rw-r--r-- | lld/ELF/ScriptParser.cpp | 7 | ||||
-rw-r--r-- | lld/test/ELF/linkerscript/memory.s | 2 |
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 \ |