[ELF] - SEGMENT_START's default argument can be an expression

Our implementation supported integer value previously.
ld can use expression,
for example, it is OK to write
 . = SEGMENT_START("foobar", .);

Patch implements that.

llvm-svn: 281831
This commit is contained in:
George Rimar
2016-09-17 18:14:56 +00:00
parent 06f85e43cf
commit 8c658bf824
3 changed files with 5 additions and 7 deletions

View File

@@ -1427,11 +1427,9 @@ Expr ScriptParser::readPrimary() {
expect("(");
next();
expect(",");
uint64_t Val;
if (next().getAsInteger(0, Val))
setError("integer expected");
Expr E = readExpr();
expect(")");
return [=](uint64_t Dot) { return Val; };
return [=](uint64_t Dot) { return E(Dot); };
}
if (Tok == "DATA_SEGMENT_ALIGN") {
expect("(");