1 2 // Copy the 'mylib.h' to a directory under the build directory. This is 3 // required, since the relative order of the emitted diagnostics depends on the 4 // absolute file paths which is sorted by clang-tidy prior emitting. 5 // 6 // RUN: mkdir -p %t/sys && mkdir -p %t/usr \ 7 // RUN: && cp %S/Inputs/deprecated-headers/mysystemlib.h %t/sys/mysystemlib.h \ 8 // RUN: && cp %S/Inputs/deprecated-headers/mylib.h %t/usr/mylib.h 9 10 // RUN: %check_clang_tidy -std=c++11 %s modernize-deprecated-headers %t \ 11 // RUN: -check-suffixes=DEFAULT \ 12 // RUN: --header-filter='.*' --system-headers \ 13 // RUN: -- -I %t/usr -isystem %t/sys -isystem %S/Inputs/deprecated-headers 14 15 // RUN: %check_clang_tidy -std=c++11 %s modernize-deprecated-headers %t \ 16 // RUN: -check-suffixes=DEFAULT,CHECK-HEADER-FILE \ 17 // RUN: -config="{CheckOptions: {modernize-deprecated-headers.CheckHeaderFile: 'true'}}" \ 18 // RUN: --header-filter='.*' --system-headers \ 19 // RUN: -- -I %t/usr -isystem %t/sys -isystem %S/Inputs/deprecated-headers 20 21 // REQUIRES: system-linux 22 23 #define EXTERN_C extern "C" 24 25 extern "C++" { 26 // We should still have the warnings here. 27 #include <stdbool.h> 28 // CHECK-MESSAGES-DEFAULT: :[[@LINE-1]]:10: warning: including 'stdbool.h' has no effect in C++; consider removing it [modernize-deprecated-headers] 29 } 30 31 #include <assert.h> 32 // CHECK-MESSAGES-DEFAULT: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers] 33 34 #include <stdbool.h> 35 // CHECK-MESSAGES-DEFAULT: :[[@LINE-1]]:10: warning: including 'stdbool.h' has no effect in C++; consider removing it [modernize-deprecated-headers] 36 37 #include <mysystemlib.h> // no-warning: Don't warn into system headers. 38 39 #include <mylib.h> 40 // CHECK-MESSAGES-CHECK-HEADER-FILE: mylib.h:1:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers] 41 42 namespace wrapping { 43 extern "C" { 44 #include <assert.h> // no-warning 45 #include <mylib.h> // no-warning 46 #include <stdbool.h> // no-warning 47 } 48 } // namespace wrapping 49 50 extern "C" { 51 namespace wrapped { 52 #include <assert.h> // no-warning 53 #include <mylib.h> // no-warning 54 #include <stdbool.h> // no-warning 55 } // namespace wrapped 56 } 57 58 namespace wrapping { 59 extern "C" { 60 namespace wrapped { 61 #include <assert.h> // no-warning 62 #include <mylib.h> // no-warning 63 #include <stdbool.h> // no-warning 64 } // namespace wrapped 65 } 66 } // namespace wrapping 67 68 EXTERN_C { 69 #include <assert.h> // no-warning 70 #include <mylib.h> // no-warning 71 #include <stdbool.h> // no-warning 72 } 73