1 // RUN: rm -rf %t
2 // RUN: split-file %s %t
3 
4 // RUN: %clang_cl /winsysroot %t -### -- %t/foo.cpp 2>&1 | FileCheck %s
5 // RUN: %clang_cl /vctoolsdir %t/VC/Tools/MSVC/27.1828.18284 \
6 // RUN:           /winsdkdir "%t/Windows Kits/10" \
7 // RUN:           -### -- %t/foo.cpp 2>&1 | FileCheck %s
8 
9 // CHECK: "-internal-isystem" "[[ROOT:[^"]*]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}include"
10 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}atlmfc{{/|\\\\}}include"
11 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}ucrt"
12 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}shared"
13 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}um"
14 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}winrt"
15 
16 #--- VC/Tools/MSVC/27.1828.18284/include/string
17 namespace std {
18 class mystring {
19 public:
20   bool empty();
21 };
22 }
23 
24 #--- Windows Kits/10/Include/10.0.19041.0/ucrt/assert.h
25 #define myassert(X)
26 
27 #--- foo.cpp
28 #include <assert.h>
29 #include <string>
30 
31 void f() {
32   std::mystring s;
33   myassert(s.empty());
34 }
35