| # REQUIRES: x86 |
| # RUN: rm -rf %t && split-file %s %t |
| |
| ## Ensure that weak externals are considered during subsystem inference. |
| |
| # RUN: llvm-mc -triple x86_64-windows-msvc -filetype obj -o %t/cui.obj %t/cui.s |
| # RUN: lld-link -out:%t/cui.exe %t/cui.obj |
| # RUN: llvm-readobj --file-headers %t/cui.exe | FileCheck --check-prefix=CUI %s |
| # RUN: llvm-mc -triple x86_64-windows-msvc -filetype obj -o %t/gui.obj %t/gui.s |
| # RUN: lld-link -out:%t/gui.exe %t/gui.obj |
| # RUN: llvm-readobj --file-headers %t/gui.exe | FileCheck --check-prefix=GUI %s |
| |
| # CUI: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI |
| # GUI: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_GUI |
| |
| #--- cui.s |
| .global default_main |
| default_main: |
| ret |
| |
| .weak main |
| main = default_main |
| |
| .global mainCRTStartup |
| mainCRTStartup: |
| ret |
| |
| #--- gui.s |
| .global default_WinMain |
| default_WinMain: |
| ret |
| |
| .weak WinMain |
| WinMain = default_WinMain |
| |
| .global WinMainCRTStartup |
| WinMainCRTStartup: |
| ret |