From 385c2a3134d0b831004c4b55439854df0a8eb151 Mon Sep 17 00:00:00 2001 From: Alexander Kornienko Date: Wed, 8 Feb 2017 16:11:22 +0000 Subject: [PATCH] [clang-tidy] hasErrorOccurred() -> hasUncompilableErrorOccurred() hasErrorOccurred() -> hasUncompilableErrorOccurred(), since we only care about errors that lead to invalid AST. llvm-svn: 294467 --- .../misc/DefinitionsInHeadersCheck.cpp | 2 +- .../misc/SuspiciousSemicolonCheck.cpp | 2 +- .../misc-suspicious-semicolon-fail.cpp | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp index f74e04e5ebab..c470d995d093 100644 --- a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp @@ -72,7 +72,7 @@ void DefinitionsInHeadersCheck::registerMatchers(MatchFinder *Finder) { void DefinitionsInHeadersCheck::check(const MatchFinder::MatchResult &Result) { // Don't run the check in failing TUs. - if (Result.Context->getDiagnostics().hasErrorOccurred()) + if (Result.Context->getDiagnostics().hasUncompilableErrorOccurred()) return; // C++ [basic.def.odr] p6: diff --git a/clang-tools-extra/clang-tidy/misc/SuspiciousSemicolonCheck.cpp b/clang-tools-extra/clang-tidy/misc/SuspiciousSemicolonCheck.cpp index f8bcd214c03b..e39a459978d1 100644 --- a/clang-tools-extra/clang-tidy/misc/SuspiciousSemicolonCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/SuspiciousSemicolonCheck.cpp @@ -30,7 +30,7 @@ void SuspiciousSemicolonCheck::registerMatchers(MatchFinder *Finder) { } void SuspiciousSemicolonCheck::check(const MatchFinder::MatchResult &Result) { - if (Result.Context->getDiagnostics().hasErrorOccurred()) + if (Result.Context->getDiagnostics().hasUncompilableErrorOccurred()) return; const auto *Semicolon = Result.Nodes.getNodeAs("semi"); diff --git a/clang-tools-extra/test/clang-tidy/misc-suspicious-semicolon-fail.cpp b/clang-tools-extra/test/clang-tidy/misc-suspicious-semicolon-fail.cpp index 12ee464bbeec..e4e7ae5cf92c 100644 --- a/clang-tools-extra/test/clang-tidy/misc-suspicious-semicolon-fail.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-suspicious-semicolon-fail.cpp @@ -1,4 +1,10 @@ -// RUN: clang-tidy %s -checks="-*,misc-suspicious-semicolon" -- 2>&1 | FileCheck %s +// RUN: clang-tidy %s -checks="-*,misc-suspicious-semicolon" -- -DERROR 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-ERROR \ +// RUN: -implicit-check-not="{{warning|error}}:" +// RUN: clang-tidy %s -checks="-*,misc-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. @@ -7,6 +13,14 @@ bool g(); void f() { if (g()); - // CHECK-NOT: [misc-suspicious-semicolon] + // CHECK-WERROR: :[[@LINE-1]]:11: warning: potentially unintended semicolon [misc-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 }