Michael J. Spencer | 9779535 | 2015-09-18 22:26:13 +0000 | [diff] [blame] | 1 | // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t |
Rafael Espindola | 9c8904f | 2015-11-18 06:11:01 +0000 | [diff] [blame] | 2 | // RUN: ld.lld %t -o %tout |
Michael J. Spencer | acf5bdf | 2015-09-19 00:15:38 +0000 | [diff] [blame] | 3 | // RUN: llvm-readobj -sections %tout | FileCheck %s |
| 4 | // RUN: llvm-objdump -d %tout | FileCheck %s --check-prefix DISASM |
Michael J. Spencer | 9779535 | 2015-09-18 22:26:13 +0000 | [diff] [blame] | 5 | // REQUIRES: x86 |
| 6 | |
Michael J. Spencer | acf5bdf | 2015-09-19 00:15:38 +0000 | [diff] [blame] | 7 | // Check that undefined weak symbols are treated as having a VA of 0. |
| 8 | |
Michael J. Spencer | 9779535 | 2015-09-18 22:26:13 +0000 | [diff] [blame] | 9 | .global _start |
| 10 | _start: |
| 11 | movl $1, sym1(%rip) |
| 12 | |
| 13 | .weak sym1 |
| 14 | |
Michael J. Spencer | acf5bdf | 2015-09-19 00:15:38 +0000 | [diff] [blame] | 15 | // CHECK: Name: .text |
| 16 | // CHECK-NEXT: Type: SHT_PROGBITS |
| 17 | // CHECK-NEXT: Flags [ |
| 18 | // CHECK-NEXT: SHF_ALLOC |
| 19 | // CHECK-NEXT: SHF_EXECINSTR |
| 20 | // CHECK-NEXT: ] |
| 21 | // CHECK-NEXT: Address: 0x11000 |
| 22 | |
| 23 | // Unfortunately FileCheck can't do math, so we have to check for explicit |
| 24 | // values: |
| 25 | // R_86_64_PC32 = 0 + (-8 - (0x11000 + 2)) = -69642 |
| 26 | |
| 27 | // DISASM: movl $1, -69642(%rip) |