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 // CHECK: "-internal-isystem" "[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Include{{/|\\\\}}10.0.19041.0{{/|\\\\}}cppwinrt" 21 22 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}DIA SDK{{/|\\\\}}lib{{/|\\\\}}amd64" 23 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}lib{{/|\\\\}}x64" 24 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}VC{{/|\\\\}}Tools{{/|\\\\}}MSVC{{/|\\\\}}27.1828.18284{{/|\\\\}}atlmfc{{/|\\\\}}lib{{/|\\\\}}x64" 25 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Lib{{/|\\\\}}10.0.19041.0{{/|\\\\}}ucrt{{/|\\\\}}x64" 26 // CHECK: "-libpath:[[ROOT]]{{/|\\\\}}Windows Kits{{/|\\\\}}10{{/|\\\\}}Lib{{/|\\\\}}10.0.19041.0{{/|\\\\}}um{{/|\\\\}}x64" 27 28 #--- VC/Tools/MSVC/27.1828.18284/include/string 29 namespace std { 30 class mystring { 31 public: 32 bool empty(); 33 }; 34 } 35 36 #--- Windows Kits/10/Include/10.0.19041.0/ucrt/assert.h 37 #define myassert(X) 38 39 #--- DIA SDK/include/cvconst.h 40 #define myotherassert(X) 41 42 #--- foo.cpp 43 #include <assert.h> 44 #include <string> 45 46 void f() { 47 std::mystring s; 48 myassert(s.empty()); 49 } 50