]> granicus.if.org Git - clang/commitdiff
Driver: Honor %INCLUDE% when built with MinGW
authorReid Kleckner <reid@kleckner.net>
Wed, 23 Apr 2014 00:15:12 +0000 (00:15 +0000)
committerReid Kleckner <reid@kleckner.net>
Wed, 23 Apr 2014 00:15:12 +0000 (00:15 +0000)
Users are expected to pass system includes through the INCLUDE
environment variable on Windows.  There's no reason to change behavior
based on the toolchain used to build Clang.

I didn't change the registry searching code because I'm not sure it
builds with mingw and I'm not set up to test it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206934 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/WindowsToolChain.cpp
test/Driver/windows-include-env.c [new file with mode: 0644]

index cd6d7e16fc90814d333fed664fbf83e7e5857555..aba06d6ef8b36b4f17fceb0fe68ed8481f79c2f6 100644 (file)
@@ -293,7 +293,6 @@ void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
   if (DriverArgs.hasArg(options::OPT_nostdlibinc))
     return;
 
-#ifdef _MSC_VER
   // Honor %INCLUDE%. It should know essential search paths with vcvarsall.bat.
   if (const char *cl_include_dir = getenv("INCLUDE")) {
     SmallVector<StringRef, 8> Dirs;
@@ -305,6 +304,7 @@ void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
       return;
   }
 
+#ifdef _MSC_VER
   std::string VSDir;
   std::string WindowsSDKDir;
 
diff --git a/test/Driver/windows-include-env.c b/test/Driver/windows-include-env.c
new file mode 100644 (file)
index 0000000..5793561
--- /dev/null
@@ -0,0 +1,4 @@
+// RUN: env INCLUDE=my_system_headers %clang -c %s -### 2>&1 | FileCheck %s
+// RUN: env INCLUDE=my_system_headers %clang_cl -c %s -### 2>&1 | FileCheck %s
+// CHECK: "-cc1"
+// CHECK: "-internal-isystem" "my_system_headers"