diff --git a/clang/lib/Frontend/InitHeaderSearch.cpp b/clang/lib/Frontend/InitHeaderSearch.cpp index 3da38fb04631..c552512dc957 100644 --- a/clang/lib/Frontend/InitHeaderSearch.cpp +++ b/clang/lib/Frontend/InitHeaderSearch.cpp @@ -118,7 +118,12 @@ void InitHeaderSearch::AddPath(const llvm::Twine &Path, // Handle isysroot. if ((Group == System || Group == CXXSystem) && !IgnoreSysRoot && +#if defined(_WIN32) + !MappedPathStr.empty() && + llvm::sys::path::is_separator(MappedPathStr[0]) && +#else llvm::sys::path::is_absolute(MappedPathStr) && +#endif IsNotEmptyOrRoot) { MappedPathStorage.clear(); MappedPathStr = diff --git a/clang/test/PCH/reloc.c b/clang/test/PCH/reloc.c index f15c77682fd8..fd78feba6047 100644 --- a/clang/test/PCH/reloc.c +++ b/clang/test/PCH/reloc.c @@ -1,7 +1,7 @@ // RUN: %clang_cc1 -emit-pch -o %t -relocatable-pch -isysroot %S/libroot %S/libroot/usr/include/reloc.h // RUN: %clang_cc1 -include-pch %t -isysroot %S/libroot %s -verify // RUN: not %clang_cc1 -include-pch %t %s -// XFAIL: mingw,win32 + #include int x = 2; // expected-error{{redefinition}}