| # RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s -o %t.obj |
| # RUN: llvm-readobj -symbols -relocations %t.obj | FileCheck %s |
| |
| # Previously .secrel32 and .secidx relocations against undefined symbols |
| # resulted in an error. That was a mistake. The linker is fully capable of |
| # resolving these relocations against symbols in other object files. Such |
| # relocations can be found in the MSVCRT debug info describing linker-provided |
| # symbols like __safe_se_handler_table and __guard_fids_table. |
| |
| .data |
| foo: |
| .secrel32 bar |
| .secidx baz |
| |
| |
| # CHECK: Relocations [ |
| # CHECK: Section (2) .data { |
| # CHECK: 0x0 IMAGE_REL_I386_SECREL bar |
| # CHECK: 0x4 IMAGE_REL_I386_SECTION baz |
| # CHECK: } |
| # CHECK: ] |
| |
| # CHECK: Symbol { |
| # CHECK: Name: bar |
| # CHECK-NEXT: Value: 0 |
| # CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0) |
| # CHECK: Symbol { |
| # CHECK: Name: baz |
| # CHECK-NEXT: Value: 0 |
| # CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0) |