| // REQUIRES: x86 |
| // RUN: split-file %s %t.dir && cd %t.dir |
| |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-windows refab.s -o refab.obj |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-windows aa.s -o aa.obj |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-windows b.s -o b.obj |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-windows antidep.s -o antidep.obj |
| // RUN: llvm-lib -out:aa.lib aa.obj |
| // RUN: llvm-lib -out:b.lib b.obj |
| |
| // Check that -alternatename with an undefined target does not prevent the symbol from being resolved to a library, |
| // once another alternate name is resolved and pulls in the source symbol. |
| // RUN: lld-link -out:out.dll -dll -noentry -machine:amd64 refab.obj aa.lib -alternatename:a=aa -alternatename:b=undef |
| |
| // Check that -alternatename with an anti-dependency target does not prevent the symbol from being resolved to a library, |
| // after another alternate name is resolved and pulls in the source symbol. |
| // RUN: lld-link -out:out2.dll -dll -noentry -machine:amd64 antidep.obj refab.obj aa.lib -alternatename:a=aa -alternatename:b=u |
| |
| #--- refab.s |
| .data |
| .rva a |
| .rva b |
| |
| #--- aa.s |
| .globl aa |
| aa: |
| .word 1 |
| |
| .section .drectve, "yn" |
| .ascii "/defaultlib:b.lib" |
| |
| #--- b.s |
| .globl b |
| b: |
| .word 2 |
| |
| #--- antidep.s |
| .weak_anti_dep u |
| .set u,d |
| |
| .globl d |
| d: |
| .word 3 |