| OLD | NEW |
| 1 ; Tests that we generate an ELF container with fields that make sense, | 1 ; Tests that we generate an ELF container with fields that make sense, |
| 2 ; cross-validating against llvm-mc. | 2 ; cross-validating against llvm-mc. |
| 3 | 3 |
| 4 ; For the integrated ELF writer, we can't pipe the output because we need | 4 ; For the integrated ELF writer, we can't pipe the output because we need |
| 5 ; to seek backward and patch up the file headers. So, use a temporary file. | 5 ; to seek backward and patch up the file headers. So, use a temporary file. |
| 6 ; RUN: %p2i -i %s --filetype=obj --args -O2 --verbose none -o %t \ | 6 ; RUN: %p2i -i %s --filetype=obj --args -O2 --verbose none -o %t \ |
| 7 ; RUN: -allow-externally-defined-symbols \ | 7 ; RUN: -allow-externally-defined-symbols \ |
| 8 ; RUN: && llvm-readobj -file-headers -sections -section-data \ | 8 ; RUN: && llvm-readobj -file-headers -sections -section-data \ |
| 9 ; RUN: -relocations -symbols %t | FileCheck %s | 9 ; RUN: -relocations -symbols %t | FileCheck %s |
| 10 | 10 |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 ; CHECK: Size: {{[1-9][0-9]*}} | 379 ; CHECK: Size: {{[1-9][0-9]*}} |
| 380 ; CHECK: Link: 0 | 380 ; CHECK: Link: 0 |
| 381 ; CHECK: Info: 0 | 381 ; CHECK: Info: 0 |
| 382 ; CHECK: AddressAlignment: 1 | 382 ; CHECK: AddressAlignment: 1 |
| 383 ; CHECK: EntrySize: 0 | 383 ; CHECK: EntrySize: 0 |
| 384 ; CHECK: } | 384 ; CHECK: } |
| 385 | 385 |
| 386 | 386 |
| 387 ; CHECK: Relocations [ | 387 ; CHECK: Relocations [ |
| 388 ; CHECK: Section ({{[0-9]+}}) .rel.text { | 388 ; CHECK: Section ({{[0-9]+}}) .rel.text { |
| 389 ; CHECK: 0x4 R_386_32 .L$float$80000000 0x0 | 389 ; CHECK: 0x7 R_386_32 .L$float$80000000 0x0 |
| 390 ; CHECK: 0xC R_386_32 .L$float$3f9d70a0 0x0 | 390 ; CHECK: 0xF R_386_32 .L$float$3f9d70a0 0x0 |
| 391 ; CHECK: 0x24 R_386_32 .L$double$ffffffffffffffff 0x0 | 391 ; CHECK: 0x27 R_386_32 .L$double$ffffffffffffffff 0x0 |
| 392 ; CHECK: 0x2C R_386_32 .L$double$fff7ffffffffffff 0x0 | 392 ; CHECK: 0x2F R_386_32 .L$double$fff7ffffffffffff 0x0 |
| 393 ; CHECK: 0x34 R_386_32 .L$double$fff8000000000003 0x0 | 393 ; CHECK: 0x37 R_386_32 .L$double$fff8000000000003 0x0 |
| 394 ; CHECK: 0x{{.*}} R_386_PC32 memcpy | 394 ; CHECK: 0x{{.*}} R_386_PC32 memcpy |
| 395 ; CHECK: 0x{{.*}} R_386_PC32 memset | 395 ; CHECK: 0x{{.*}} R_386_PC32 memset |
| 396 ; CHECK: 0x{{.*}} R_386_PC32 external_foo | 396 ; CHECK: 0x{{.*}} R_386_PC32 external_foo |
| 397 ; CHECK: } | 397 ; CHECK: } |
| 398 ; CHECK: Section ({{[0-9]+}}) .rel.data { | 398 ; CHECK: Section ({{[0-9]+}}) .rel.data { |
| 399 ; The set of relocations between llvm-mc and the integrated elf-writer | 399 ; The set of relocations between llvm-mc and the integrated elf-writer |
| 400 ; are different. For local symbols, llvm-mc uses the section + offset within | 400 ; are different. For local symbols, llvm-mc uses the section + offset within |
| 401 ; the section, while the integrated elf-writer refers the symbol itself. | 401 ; the section, while the integrated elf-writer refers the symbol itself. |
| 402 ; CHECK: 0x10 R_386_32 {{.*}} 0x0 | 402 ; CHECK: 0x10 R_386_32 {{.*}} 0x0 |
| 403 ; CHECK: 0x14 R_386_32 {{.*}} 0x0 | 403 ; CHECK: 0x14 R_386_32 {{.*}} 0x0 |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 641 ; CHECK: Symbol { | 641 ; CHECK: Symbol { |
| 642 ; CHECK: Name: memset | 642 ; CHECK: Name: memset |
| 643 ; CHECK-NEXT: Value: 0x0 | 643 ; CHECK-NEXT: Value: 0x0 |
| 644 ; CHECK-NEXT: Size: 0 | 644 ; CHECK-NEXT: Size: 0 |
| 645 ; CHECK-NEXT: Binding: Global | 645 ; CHECK-NEXT: Binding: Global |
| 646 ; CHECK-NEXT: Type: None | 646 ; CHECK-NEXT: Type: None |
| 647 ; CHECK-NEXT: Other: 0 | 647 ; CHECK-NEXT: Other: 0 |
| 648 ; CHECK-NEXT: Section: Undefined | 648 ; CHECK-NEXT: Section: Undefined |
| 649 ; CHECK-NEXT: } | 649 ; CHECK-NEXT: } |
| 650 ; CHECK: ] | 650 ; CHECK: ] |
| OLD | NEW |