| # REQUIRES: x86 |
| |
| # Tests handling of several comdats with "largest" selection type that each |
| # has an associative comdat. |
| |
| # Create obj files. |
| # RUN: sed -e s/TYPE/.byte/ -e s/SIZE/1/ %s | llvm-mc -triple x86_64-pc-win32 -filetype=obj -o %t.1.obj |
| # RUN: sed -e s/TYPE/.short/ -e s/SIZE/2/ %s | llvm-mc -triple x86_64-pc-win32 -filetype=obj -o %t.2.obj |
| # RUN: sed -e s/TYPE/.long/ -e s/SIZE/4/ %s | llvm-mc -triple x86_64-pc-win32 -filetype=obj -o %t.4.obj |
| |
| .section .text$ac, "", associative, symbol |
| assocsym: |
| .long SIZE |
| |
| .section .text$nm, "", largest, symbol |
| .globl symbol |
| symbol: |
| TYPE SIZE |
| |
| # Pass the obj files in different orders and check that only the associative |
| # comdat of the largest obj file makes it into the output, independent of |
| # the order of the obj files on the command line. |
| |
| # FIXME: Make these pass when /opt:noref is passed. |
| |
| # RUN: lld-link /include:symbol /dll /noentry /nodefaultlib %t.1.obj %t.2.obj %t.4.obj /out:%t.exe |
| # RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=ALL124 %s |
| # ALL124: Contents of section .text: |
| # ALL124: 180001000 04000000 04000000 .... |
| |
| # RUN: lld-link /include:symbol /dll /noentry /nodefaultlib %t.4.obj %t.2.obj %t.1.obj /out:%t.exe |
| # RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=ALL421 %s |
| # ALL421: Contents of section .text: |
| # ALL421: 180001000 04000000 04000000 .... |
| |
| # RUN: lld-link /include:symbol /dll /noentry /nodefaultlib %t.2.obj %t.4.obj %t.1.obj /out:%t.exe |
| # RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=ALL241 %s |
| # ALL241: Contents of section .text: |
| # ALL241: 180001000 04000000 04000000 .... |
| |
| # RUN: lld-link /include:symbol /dll /noentry /nodefaultlib %t.2.obj %t.1.obj /out:%t.exe |
| # RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=JUST21 %s |
| # JUST21: Contents of section .text: |
| # JUST21: 180001000 02000000 0200 .... |
| |