clang-cl: Remove -isystem, add -imsvc.
authorNico Weber <nicolasweber@gmx.de>
Tue, 12 Apr 2016 19:04:37 +0000 (19:04 +0000)
committerNico Weber <nicolasweber@gmx.de>
Tue, 12 Apr 2016 19:04:37 +0000 (19:04 +0000)
commitfd3e1ad0ce073e67c21833e56b74105ce8339ce3
treeb1b823b56c70885631d99fba78756503baf0b6b8
parentb7b6d0fc664f974512279a55a07bebbeb0c3b129
clang-cl: Remove -isystem, add -imsvc.

r260990 exposed -isystem in clang-cl. -isystem adds a directory to the front of
the system include search path. The idea was to use this to point to a hermetic
msvc install, but as it turns out this doesn't work: -isystem then adds the
hermetic headers in front of clang's builtin headers, and clang's headers that
are supposed to wrap msvc headers (say, stdarg.h) aren't picked up at all
anymore.

So revert that, and instead expose -imsvc which works as if the passed
directory was part of %INCLUDE%: The header is treated as a system header, but
it is searched after clang's lib/Header headers.

Fixes half of PRPR26751.

llvm-svn: 266108
clang/include/clang/Driver/CLCompatOptions.td
clang/include/clang/Driver/Options.td
clang/lib/Driver/MSVCToolChain.cpp
clang/test/Driver/cl-options.c
clang/test/Driver/cl-pch-search.cpp