Before this change, e.g. -isystem flags in front of the /FI corresponding to the
pch file would be incorrectly ignored.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@265238
91177308-0d34-0410-b5e6-
96231b3b80d8
for (const Arg *A : Args.filtered(options::OPT_clang_i_Group)) {
++AI;
- if (getToolChain().getDriver().IsCLMode()) {
+ if (getToolChain().getDriver().IsCLMode() &&
+ A->getOption().matches(options::OPT_include)) {
// In clang-cl mode, /Ycfoo.h means that all code up to a foo.h
// include is compiled into foo.h, and everything after goes into
// the .obj file. /Yufoo.h means that all includes prior to and including
// REQUIRES: x86-registered-target
// Check that pchfile.h next to to pchfile.cc is found correctly.
// RUN: %clang_cl -Werror /Ycpchfile.h /FIpchfile.h /c /Fo%t.obj /Fp%t.pch -- %S/Inputs/pchfile.cpp
+
+// Check that i_group flags other than -include aren't skipped (e.g. -isystem).
+#include "header0.h"
+// RUN: %clang_cl -Werror -isystem%S/Inputs /Yupchfile.h /FIpchfile.h /c /Fo%t.obj /Fp%t.pch -- %s