================
@@ -54,24 +55,69 @@
// CHECK-64-SAME: {{^}} "-internal-externc-isystem"
"[[SYSROOT]]/usr/include/w32api"
// CHECK-64-SAME: "-femulated-tls"
// CHECK-64-SAME: "-exception-model=seh"
-// CHECK-64: "{{.*}}gcc{{(\.exe)?}}"
-// CHECK-64-SAME: "-m64"
+// CHECK-64: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-SAME: "-m" "i386pep"
+// CHECK-64-SAME: "--disable-high-entropy-va"
// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
// RUN: --stdlib=platform -static 2>&1 | FileCheck
--check-prefix=CHECK-64-STATIC %s
// CHECK-64-STATIC: "-cc1" "-triple" "x86_64-pc-windows-cygnus"
// CHECK-64-STATIC-SAME: "-static-define"
-// CHECK-64-STATIC: "{{.*}}gcc{{(\.exe)?}}"
-// CHECK-64-STATIC-SAME: "-static"
+// CHECK-64-STATIC: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-STATIC-SAME: "-Bstatic"
// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
// RUN: -shared 2>&1 | FileCheck --check-prefix=CHECK-64-SHARED %s
-// CHECK-64-SHARED: "{{.*}}gcc{{(\.exe)?}}"
-// CHECK-64-SHARED-SAME: "-shared"
+// CHECK-64-SHARED: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-SHARED-SAME: "--shared"
+// CHECK-64-SHARED-SAME: "-e" "_cygwin_dll_entry"
// RUN: %clang -### -o %t %s 2>&1 -no-integrated-as -fuse-ld=ld \
// RUN: --gcc-toolchain=%S/Inputs/basic_cross_cygwin_tree/usr \
// RUN: --target=x86_64-pc-cygwin \
// RUN: | FileCheck --check-prefix=CHECK-64-CROSS %s
// CHECK-64-CROSS: "-cc1" "-triple" "x86_64-pc-windows-cygnus"
// CHECK-64-CROSS:
"{{.*}}/Inputs/basic_cross_cygwin_tree/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin{{(/|\\\\)}}as"
"--64"
+
+// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: -mdll 2>&1 | FileCheck --check-prefix=CHECK-64-DLL %s
+// CHECK-64-DLL: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-DLL-SAME: "--dll"
+// CHECK-64-DLL-SAME: "-e" "_cygwin_dll_entry"
+
+// RUN: %clang -### %s --target=i686-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: -mdll 2>&1 | FileCheck --check-prefix=CHECK-DLL %s
+// CHECK-DLL: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-DLL-SAME: "--dll"
+// CHECK-DLL-SAME: "-e" "__cygwin_dll_entry@12"
+
+// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: -mwindows 2>&1 | FileCheck --check-prefix=CHECK-64-WINDOWS %s
+// CHECK-64-WINDOWS: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-WINDOWS-SAME: "--subsystem" "windows"
+
+// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: -mconsole 2>&1 | FileCheck --check-prefix=CHECK-64-CONSOLE %s
+// CHECK-64-CONSOLE: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-CONSOLE-SAME: "--subsystem" "console"
+
+// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: -o a 2>&1 | FileCheck --check-prefix=CHECK-64-EXENAME %s
+// CHECK-64-EXENAME: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-EXENAME-SAME: "-o" "a.exe"
+
+// RUN: %clang -### %s --target=x86_64-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: -o a.out 2>&1 | FileCheck --check-prefix=CHECK-64-EXENAME-WITH-EXT %s
+// CHECK-64-EXENAME-WITH-EXT: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-64-EXENAME-WITH-EXT-SAME: "-o" "a.out"
+
+// RUN: %clang -### %s --target=i686-pc-cygwin
--sysroot=%S/Inputs/basic_cygwin_tree \
+// RUN: 2>&1 | FileCheck --check-prefix=CHECK-ASLR-DEFAULT %s
+// CHECK-ASLR-DEFAULT: "{{.*}}ld{{(\.exe)?}}"
+// CHECK-ASLR-DEFAULT-NOT: "--disable-high-entropy-va"
+// CHECK-ASLR-DEFAULT-SAME: "--disable-nxcompat"
----------------
kikairoya wrote:
This check fails to catch when the order of high-entropy-va and nxcompat is
swapped.
We need to repeat -NOT after all positive checks, repeat RUN lines to split
-NOT checks and positive checks, or use `FileCheck --implicit-check-not`.
https://github.com/llvm/llvm-project/pull/147960
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits