| # REQUIRES: x86 |
| # RUN: rm -rf %t && mkdir -p %t && cd %t |
| # RUN: llvm-mc -filetype=obj -triple=i686-windows-msvc %s -o foo.obj |
| # RUN: llc %S/Inputs/bar.ll -filetype=obj -mtriple=i686-windows-msvc -o bar.obj |
| # RUN: llvm-lib bar.obj -out:bar.lib |
| # RUN: lld-link -safeseh:no -debug -pdb:foo.pdb foo.obj bar.lib -out:foo.exe -entry:main |
| # RUN: llvm-pdbutil dump -modules %t/foo.pdb | FileCheck %s |
| |
| # Make sure that the PDB has module descriptors. foo.obj and bar.lib should be |
| # absolute paths, and bar.obj should be the relative path passed to llvm-lib. |
| |
| # CHECK: Modules |
| # CHECK-NEXT: ============================================================ |
| # CHECK-NEXT: Mod 0000 | `{{.*pdb-lib.s.tmp[/\\]foo.obj}}`: |
| # CHECK-NEXT: Obj: `{{.*pdb-lib.s.tmp[/\\]foo.obj}}`: |
| # CHECK-NEXT: debug stream: 65535, # files: 0, has ec info: false |
| # CHECK-NEXT: pdb file ni: 0 ``, src file ni: 0 `` |
| # CHECK-NEXT: Mod 0001 | `bar.obj`: |
| # CHECK-NEXT: Obj: `{{.*pdb-lib.s.tmp[/\\]bar.lib}}`: |
| # CHECK-NEXT: debug stream: 65535, # files: 0, has ec info: false |
| # CHECK-NEXT: pdb file ni: 0 ``, src file ni: 0 `` |
| # CHECK-NEXT: Mod 0002 | `* Linker *`: |
| # CHECK-NEXT: Obj: ``: |
| # CHECK-NEXT: debug stream: 10, # files: 0, has ec info: false |
| # CHECK-NEXT: pdb file ni: 1 `{{.*foo.pdb}}`, src file ni: 0 `` |
| |
| .def _main; |
| .scl 2; |
| .type 32; |
| .endef |
| .globl _main |
| _main: |
| calll _bar |
| xor %eax, %eax |
| retl |
| |