Simple numeric constants are absolute.

llvm-svn: 285621
This commit is contained in:
Rafael Espindola 2016-10-31 18:56:02 +00:00
parent bf6e7848a0
commit 63b4a37ef5
2 changed files with 11 additions and 1 deletions

View File

@ -1682,7 +1682,7 @@ Expr ScriptParser::readPrimary() {
// Tok is a literal number.
uint64_t V;
if (readInteger(Tok, V))
return [=](uint64_t Dot) { return V; };
return {[=](uint64_t Dot) { return V; }, true};
// Tok is a symbol name.
if (Tok != "." && !isValidCIdentifier(Tok))

View File

@ -6,6 +6,7 @@
# RUN: bar2 = CONSTANT (MAXPAGESIZE); \
# RUN: bar3 = SIZEOF (.text); \
# RUN: bar4 = SIZEOF_HEADERS; \
# RUN: bar5 = 0x42; \
# RUN: *(.text) \
# RUN: } \
# RUN: };" > %t.script
@ -48,3 +49,12 @@
# CHECK-NEXT: Other: 0
# CHECK-NEXT: Section: Absolute
# CHECK-NEXT: }
# CHECK-NEXT: Symbol {
# CHECK-NEXT: Name: bar5
# CHECK-NEXT: Value: 0x42
# CHECK-NEXT: Size: 0
# CHECK-NEXT: Binding: Global
# CHECK-NEXT: Type: None
# CHECK-NEXT: Other: 0
# CHECK-NEXT: Section: Absolute
# CHECK-NEXT: }