xref: /llvm-project/clang/test/Driver/cl-sysroot.cpp (revision 9c195bae31c4eefc3e5360cefb4f601388a4f6d9)
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 
f()46 void f() {
47   std::mystring s;
48   myassert(s.empty());
49 }
50