| 1 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='' %s -- -I %S/Inputs/file-filter -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck %s |
| 2 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='' -quiet %s -- -I %S/Inputs/file-filter -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK-QUIET %s |
| 3 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='.*' %s -- -I %S/Inputs/file-filter -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK2 %s |
| 4 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='.*' -quiet %s -- -I %S/Inputs/file-filter -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK2-QUIET %s |
| 5 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='header2\.h' %s -- -I %S/Inputs/file-filter -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK3 %s |
| 6 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='header2\.h' -quiet %s -- -I %S/Inputs/file-filter -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK3-QUIET %s |
| 7 | // FIXME: "-I %S/Inputs/file-filter/system/.." must be redundant. |
| 8 | // On Win32, file-filter/system\system-header1.h precedes |
| 9 | // file-filter\header*.h due to code order between '/' and '\\'. |
| 10 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='.*' -system-headers %s -- -I %S/Inputs/file-filter/system/.. -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK4 %s |
| 11 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='.*' -system-headers -quiet %s -- -I %S/Inputs/file-filter/system/.. -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK4-QUIET %s |
| 12 | // RUN: clang-tidy -checks='-*,cppcoreguidelines-pro-type-cstyle-cast' -header-filter='.*' -system-headers %s -- -I %S/Inputs/file-filter/system/.. -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK5 %s |
| 13 | // RUN: clang-tidy -checks='-*,cppcoreguidelines-pro-type-cstyle-cast' -header-filter='.*' %s -- -I %S/Inputs/file-filter/system/.. -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK5-NO-SYSTEM-HEADERS %s |
| 14 | // RUN: clang-tidy -checks='-*,google-explicit-constructor' -header-filter='.*' -exclude-header-filter='header1\.h' %s -- -I %S/Inputs/file-filter/ -isystem %S/Inputs/file-filter/system 2>&1 | FileCheck --check-prefix=CHECK6 %s |
| 15 | |
| 16 | #include "header1.h" |
| 17 | // CHECK-NOT: warning: |
| 18 | // CHECK-QUIET-NOT: warning: |
| 19 | // CHECK2: header1.h:1:12: warning: single-argument constructors must be marked explicit |
| 20 | // CHECK2-QUIET: header1.h:1:12: warning: single-argument constructors must be marked explicit |
| 21 | // CHECK3-NOT: warning: |
| 22 | // CHECK3-QUIET-NOT: warning: |
| 23 | // CHECK4: header1.h:1:12: warning: single-argument constructors |
| 24 | // CHECK4-QUIET: header1.h:1:12: warning: single-argument constructors |
| 25 | // CHECK6-NOT: warning: |
| 26 | |
| 27 | #include "header2.h" |
| 28 | // CHECK-NOT: warning: |
| 29 | // CHECK-QUIET-NOT: warning: |
| 30 | // CHECK2: header2.h:1:12: warning: single-argument constructors |
| 31 | // CHECK2-QUIET: header2.h:1:12: warning: single-argument constructors |
| 32 | // CHECK3: header2.h:1:12: warning: single-argument constructors |
| 33 | // CHECK3-QUIET: header2.h:1:12: warning: single-argument constructors |
| 34 | // CHECK4: header2.h:1:12: warning: single-argument constructors |
| 35 | // CHECK4-QUIET: header2.h:1:12: warning: single-argument constructors |
| 36 | // CHECK6: header2.h:1:12: warning: single-argument constructors |
| 37 | |
| 38 | #include <system-header.h> |
| 39 | // CHECK-NOT: warning: |
| 40 | // CHECK-QUIET-NOT: warning: |
| 41 | // CHECK2-NOT: warning: |
| 42 | // CHECK2-QUIET-NOT: warning: |
| 43 | // CHECK3-NOT: warning: |
| 44 | // CHECK3-QUIET-NOT: warning: |
| 45 | // CHECK4: system-header.h:1:12: warning: single-argument constructors |
| 46 | // CHECK4-QUIET: system-header.h:1:12: warning: single-argument constructors |
| 47 | // CHECK6-NOT: warning: |
| 48 | |
| 49 | class A { A(int); }; |
| 50 | // CHECK: :[[@LINE-1]]:11: warning: single-argument constructors |
| 51 | // CHECK-QUIET: :[[@LINE-2]]:11: warning: single-argument constructors |
| 52 | // CHECK2: :[[@LINE-3]]:11: warning: single-argument constructors |
| 53 | // CHECK2-QUIET: :[[@LINE-4]]:11: warning: single-argument constructors |
| 54 | // CHECK3: :[[@LINE-5]]:11: warning: single-argument constructors |
| 55 | // CHECK3-QUIET: :[[@LINE-6]]:11: warning: single-argument constructors |
| 56 | // CHECK4: :[[@LINE-7]]:11: warning: single-argument constructors |
| 57 | // CHECK4-QUIET: :[[@LINE-8]]:11: warning: single-argument constructors |
| 58 | // CHECK6: :[[@LINE-9]]:11: warning: single-argument constructors |
| 59 | |
| 60 | // CHECK-NOT: warning: |
| 61 | // CHECK-QUIET-NOT: warning: |
| 62 | // CHECK2-NOT: warning: |
| 63 | // CHECK2-QUIET-NOT: warning: |
| 64 | // CHECK3-NOT: warning: |
| 65 | // CHECK3-QUIET-NOT: warning: |
| 66 | // CHECK4-NOT: warning: |
| 67 | // CHECK4-QUIET-NOT: warning: |
| 68 | |
| 69 | // CHECK: Suppressed 3 warnings (3 in non-user code) |
| 70 | // CHECK: Use -header-filter=.* to display errors from all non-system headers. |
| 71 | // CHECK-QUIET-NOT: Suppressed |
| 72 | // CHECK2: Suppressed 1 warnings (1 in non-user code) |
| 73 | // CHECK2: Use -header-filter=.* {{.*}} |
| 74 | // CHECK2-QUIET-NOT: Suppressed |
| 75 | // CHECK3: Suppressed 2 warnings (2 in non-user code) |
| 76 | // CHECK3: Use -header-filter=.* {{.*}} |
| 77 | // CHECK3-QUIET-NOT: Suppressed |
| 78 | // CHECK4-NOT: Suppressed {{.*}} warnings |
| 79 | // CHECK4-NOT: Use -header-filter=.* {{.*}} |
| 80 | // CHECK4-QUIET-NOT: Suppressed |
| 81 | // CHECK6: Suppressed 2 warnings (2 in non-user code) |
| 82 | // CHECK6: Use -header-filter=.* {{.*}} |
| 83 | |
| 84 | int x = 123; |
| 85 | auto x_ptr = TO_FLOAT_PTR(&x); |
| 86 | // CHECK5: :[[@LINE-1]]:14: warning: do not use C-style cast to convert between unrelated types |
| 87 | // CHECK5-NO-SYSTEM-HEADERS-NOT: :[[@LINE-2]]:14: warning: do not use C-style cast to convert between unrelated types |
| 88 | |