summaryrefslogtreecommitdiff
path: root/test/Driver/fuse-ld-windows.c
diff options
context:
space:
mode:
authorIgor Kudrin <ikudrin@accesssoftek.com>2018-02-27 02:51:30 +0000
committerIgor Kudrin <ikudrin@accesssoftek.com>2018-02-27 02:51:30 +0000
commitd222eefb79b802ca1bc74fe891d9a201a5eb6a78 (patch)
tree95448e8da218395f197f8da1df5093e9aa5876dc /test/Driver/fuse-ld-windows.c
parent54d1490d2d22466826a15121216aa3c2d342792f (diff)
downloadclang-d222eefb79b802ca1bc74fe891d9a201a5eb6a78.tar.gz
[Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows.
clang used to require adding an ".exe" suffix when targeting ELF systems on Windows. Differential Revision: https://reviews.llvm.org/D43621 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@326164 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Driver/fuse-ld-windows.c')
-rw-r--r--test/Driver/fuse-ld-windows.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/Driver/fuse-ld-windows.c b/test/Driver/fuse-ld-windows.c
new file mode 100644
index 0000000000..089f2961b7
--- /dev/null
+++ b/test/Driver/fuse-ld-windows.c
@@ -0,0 +1,25 @@
+// REQUIRES: system-windows
+
+// We used to require adding ".exe" suffix when cross-compiling on Windows.
+// RUN: %clang %s -### -o %t.o -target i386-unknown-linux \
+// RUN: -B %S/Inputs/fuse_ld_windows -fuse-ld=foo 2>&1 \
+// RUN: | FileCheck %s
+
+// Check that the old variant still works.
+// RUN: %clang %s -### -o %t.o -target i386-unknown-linux \
+// RUN: -B %S/Inputs/fuse_ld_windows -fuse-ld=foo.exe 2>&1 \
+// RUN: | FileCheck %s
+
+// With the full path, the extension can be omitted, too,
+// because Windows allows that.
+// RUN: %clang %s -### -o %t.o -target i386-unknown-linux \
+// RUN: -fuse-ld=%S/Inputs/fuse_ld_windows/ld.foo 2>&1 \
+// RUN: | FileCheck %s
+
+// Check that the full path with the extension works too.
+// RUN: %clang %s -### -o %t.o -target i386-unknown-linux \
+// RUN: -fuse-ld=%S/Inputs/fuse_ld_windows/ld.foo.exe 2>&1 \
+// RUN: | FileCheck %s
+
+// CHECK-NOT: invalid linker name
+// CHECK: /Inputs/fuse_ld_windows{{/|\\\\}}ld.foo