1 // RUN: rm -rf %t 2 // RUN: split-file %s %t 3 4 // RUN: %clang_cl --target=x86_64-windows \ 5 // RUN: /winsysroot %t \ 6 // RUN: -### -- %t/foo.cpp 2>&1 | FileCheck %s 7 // RUN: %clang_cl --target=x86_64-windows \ 8 // RUN: /diasdkdir "%t/DIA SDK" \ 9 // RUN: /vctoolsdir %t/VC/Tools/MSVC/27.1828.18284 \ 10 // RUN: /winsdkdir "%t/Windows Kits/10" \ 11 // RUN: -### -- %t/foo.cpp 2>&1 | FileCheck %s 12 13 // CHECK: "-internal-isystem" "[[ROOT:[^"]*]]{{/|\\\\}}DIA SDK{{/|\\\\}}include" 14 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}include" 15 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}atlmfc{{/|\\\\}}include" 16 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}ucrt" 17 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}shared" 18 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}um" 19 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}winrt" 20 21 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}DIA SDK{{/|\\\\}}lib{{/|\\\\}}amd64" 22 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}lib{{/|\\\\}}x64" 23 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}atlmfc{{/|\\\\}}lib{{/|\\\\}}x64" 24 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Lib{{/|\\\\}}10.0.19041.0{{/|\\\\}}ucrt{{/|\\\\}}x64" 25 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Lib{{/|\\\\}}10.0.19041.0{{/|\\\\}}um{{/|\\\\}}x64" 26 27 #--- VC/Tools/MSVC/27.1828.18284/include/string 28 namespace std { 29 class mystring { 30 public: 31 bool empty(); 32 }; 33 } 34 35 #--- Windows Kits/10/Include/10.0.19041.0/ucrt/assert.h 36 #define myassert(X) 37 38 #--- DIA SDK/include/cvconst.h 39 #define myotherassert(X) 40 41 #--- foo.cpp 42 #include <assert.h> 43 #include <string> 44 45 void f() { 46 std::mystring s; 47 myassert(s.empty()); 48 } 49