1# RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
2
3# RUN: lld-link /out:%t.exe /entry:main %t.obj
4# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=BIND %s
5# RUN: lld-link /allowbind /out:%t.exe /entry:main %t.obj
6# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=BIND %s
7BIND-NOT: IMAGE_DLL_CHARACTERISTICS_NO_BIND
8
9# RUN: lld-link /allowbind:no /out:%t.exe /entry:main %t.obj
10# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOBIND %s
11NOBIND: IMAGE_DLL_CHARACTERISTICS_NO_BIND
12
13# RUN: lld-link /out:%t.exe /entry:main %t.obj
14# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ISO %s
15# RUN: lld-link /allowisolation /out:%t.exe /entry:main %t.obj
16# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ISO %s
17ISO-NOT: IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION
18
19# RUN: lld-link /allowisolation:no /out:%t.exe /entry:main %t.obj
20# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOISO %s
21NOISO: IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION
22
23# RUN: lld-link /out:%t.exe /entry:main %t.obj
24# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ENT %s
25# RUN: lld-link /out:%t.exe /entry:main /highentropyva %t.obj
26# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ENT %s
27ENT: IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
28
29# RUN: lld-link /out:%t.exe /highentropyva:no /out:%t.exe /entry:main %t.obj
30# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOENT %s
31NOENT-NOT: IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
32
33# RUN: lld-link /out:%t.exe /entry:main /integritycheck %t.obj
34# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=INT %s
35INT: IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY
36
37# RUN: lld-link /out:%t.exe /entry:main %t.obj
38# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOINT %s
39# RUN: lld-link /out:%t.exe /integritycheck:no /out:%t.exe /entry:main %t.obj
40# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOINT %s
41NOINT-NOT: IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY
42
43# RUN: lld-link /out:%t.exe /entry:main %t.obj
44# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NXCOMPAT %s
45# RUN: lld-link /out:%t.exe /entry:main /nxcompat %t.obj
46# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NXCOMPAT %s
47NXCOMPAT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
48
49# RUN: lld-link /out:%t.exe /nxcompat:no /out:%t.exe /entry:main %t.obj
50# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NONXCOMPAT %s
51NONXCOMPAT-NOT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
52
53# RUN: lld-link /out:%t.exe /entry:main %t.obj
54# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=TSAWARE %s
55# RUN: lld-link /out:%t.exe /entry:main /tsaware %t.obj
56# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=TSAWARE %s
57TSAWARE: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE
58
59# RUN: lld-link /tsaware:no /out:%t.exe /entry:main %t.obj
60# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOTSAWARE %s
61# RUN: lld-link /dll /out:%t.dll /entry:main %t.obj
62# RUN: llvm-readobj -file-headers %t.dll | FileCheck -check-prefix=NOTSAWARE %s
63# RUN: lld-link /tsaware /dll /out:%t.dll /entry:main %t.obj
64# RUN: llvm-readobj -file-headers %t.dll | FileCheck -check-prefix=NOTSAWARE %s
65NOTSAWARE-NOT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE
66