// RUN: not clang-tidy %s \
// RUN: -checks="-*,bugprone-suspicious-semicolon" -- -DERROR 2>&1 \
// RUN: | FileCheck %s -check-prefix=CHECK-ERROR \
// RUN: -implicit-check-not="{{warning|error}}:"
// RUN: not clang-tidy %s \
// RUN: -checks="-*,bugprone-suspicious-semicolon,clang-diagnostic*" \
// RUN: -- -DWERROR -Wno-everything -Werror=unused-variable 2>&1 \
// RUN: | FileCheck %s -check-prefix=CHECK-WERROR \
// RUN: -implicit-check-not="{{warning|error}}:"
// Note: This test verifies that, the checker does not emit any warning for
// files that do not compile.
bool g();
void f() {
if (g());
// CHECK-WERROR: :[[@LINE-1]]:11: warning: potentially unintended semicolon [bugprone-suspicious-semicolon]
#if ERROR
int a
// CHECK-ERROR: :[[@LINE-1]]:8: error: expected ';' at end of declaration [clang-diagnostic-error]
#elif WERROR
int a;
// CHECK-WERROR: :[[@LINE-1]]:7: error: unused variable 'a' [clang-diagnostic-unused-variable]
#else
#error "One of ERROR or WERROR should be defined.
#endif
}