diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:08:33 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:08:33 +0000 | 
| commit | 20d35e67e67f106f617c939725101223211659f0 (patch) | |
| tree | 64eb963cbf5ba58765e0a6b64a440965d66a7a4d /test/ELF/linkerscript/absolute-expr.test | |
| parent | ae1a339de31cf4065777531959a11e55a2e5fa00 (diff) | |
Notes
Diffstat (limited to 'test/ELF/linkerscript/absolute-expr.test')
| -rw-r--r-- | test/ELF/linkerscript/absolute-expr.test | 80 | 
1 files changed, 80 insertions, 0 deletions
diff --git a/test/ELF/linkerscript/absolute-expr.test b/test/ELF/linkerscript/absolute-expr.test new file mode 100644 index 000000000000..9e8f517d0ac4 --- /dev/null +++ b/test/ELF/linkerscript/absolute-expr.test @@ -0,0 +1,80 @@ +# REQUIRES: x86 +# RUN: echo ".global foo; foo = 0x123" | llvm-mc -filetype=obj -triple=x86_64-pc-linux - -o %t.o +# RUN: ld.lld -o %t.so --script %s %t.o -shared +# RUN: llvm-readobj -t %t.so | FileCheck %s + +SECTIONS { +  .text : { +    bar1 = ALIGNOF(.text); +    bar2 = CONSTANT (MAXPAGESIZE); +    bar3 = SIZEOF (.text); +    bar4 = SIZEOF_HEADERS; +    bar5 = 0x42; +    bar6 = foo + 1; +    *(.text) +  } +} + +# CHECK:      Symbol { +# CHECK:        Name: foo +# CHECK-NEXT:   Value: 0x123 +# CHECK-NEXT:   Size: 0 +# CHECK-NEXT:   Binding: Global +# CHECK-NEXT:   Type: None +# CHECK-NEXT:   Other: 0 +# CHECK-NEXT:   Section: Absolute (0xFFF1) +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT:   Name: bar1 +# CHECK-NEXT:   Value: 0x4 +# CHECK-NEXT:   Size: 0 +# CHECK-NEXT:   Binding: Global +# CHECK-NEXT:   Type: None +# CHECK-NEXT:   Other: 0 +# CHECK-NEXT:   Section: Absolute +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT:   Name: bar2 +# CHECK-NEXT:   Value: 0x1000 +# CHECK-NEXT:   Size: 0 +# CHECK-NEXT:   Binding: Global +# CHECK-NEXT:   Type: None +# CHECK-NEXT:   Other: 0 +# CHECK-NEXT:   Section: Absolute +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT:   Name: bar3 +# CHECK-NEXT:   Value: 0x0 +# CHECK-NEXT:   Size: 0 +# CHECK-NEXT:   Binding: Global +# CHECK-NEXT:   Type: None +# CHECK-NEXT:   Other: 0 +# CHECK-NEXT:   Section: Absolute +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT:   Name: bar4 +# CHECK-NEXT:   Value: 0x190 +# CHECK-NEXT:   Size: 0 +# CHECK-NEXT:   Binding: Global +# CHECK-NEXT:   Type: None +# 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: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT:   Name: bar6 +# CHECK-NEXT:   Value: 0x124 +# CHECK-NEXT:   Size: 0 +# CHECK-NEXT:   Binding: Global (0x1) +# CHECK-NEXT:   Type: None (0x0) +# CHECK-NEXT:   Other: 0 +# CHECK-NEXT:   Section: Absolute (0xFFF1) +# CHECK-NEXT: }  | 
