From 7e771de38fb630b8be010c4dc47d61207fa130a2 Mon Sep 17 00:00:00 2001 From: George Burgess IV Date: Tue, 23 May 2017 16:46:57 -0700 Subject: [PATCH] logging: always enable DCHECK for the static analyzer This helps us have less false-positives. We do this instead of `#undef NDEBUG`, since undefing NDEBUG actually gave us more false-positives (...and build breakages) than simply leaving it defined. Bug: None Test: Ran the static analyzer across internal master. 213 fewer warnings (15 Medium, 2 Low, the remainder are 'Analyzer'). All of the dropped warnings I audited were false-positives. It adds ~3 Tidy warnings. Change-Id: Ibedab60ca7e9d2b0772896222b83d2e7ab064afe --- base/include/android-base/logging.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/include/android-base/logging.h b/base/include/android-base/logging.h index fa0d922bd..cf4a62467 100644 --- a/base/include/android-base/logging.h +++ b/base/include/android-base/logging.h @@ -315,7 +315,7 @@ struct LogAbortAfterFullExpr { // DCHECKs are debug variants of CHECKs only enabled in debug builds. Generally // CHECK should be used unless profiling identifies a CHECK as being in // performance critical code. -#if defined(NDEBUG) +#if defined(NDEBUG) && !defined(__clang_analyzer__) static constexpr bool kEnableDChecks = false; #else static constexpr bool kEnableDChecks = true; @@ -339,7 +339,7 @@ static constexpr bool kEnableDChecks = true; if (::android::base::kEnableDChecks) CHECK_STREQ(s1, s2) #define DCHECK_STRNE(s1, s2) \ if (::android::base::kEnableDChecks) CHECK_STRNE(s1, s2) -#if defined(NDEBUG) +#if defined(NDEBUG) && !defined(__clang_analyzer__) #define DCHECK_CONSTEXPR(x, out, dummy) #else #define DCHECK_CONSTEXPR(x, out, dummy) CHECK_CONSTEXPR(x, out, dummy)