[compiler-rt] f3f4bc8 - [NFC] [scudo] syntax-check DCHECK arguments if DCHECK is off
Florian Mayer via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 17 16:56:56 PST 2023
Author: Florian Mayer
Date: 2023-01-17T16:56:49-08:00
New Revision: f3f4bc814bfe1131f7ab30eed03a825bf47521ea
URL: https://github.com/llvm/llvm-project/commit/f3f4bc814bfe1131f7ab30eed03a825bf47521ea
DIFF: https://github.com/llvm/llvm-project/commit/f3f4bc814bfe1131f7ab30eed03a825bf47521ea.diff
LOG: [NFC] [scudo] syntax-check DCHECK arguments if DCHECK is off
This is a widespread technique, used in at least:
* ABSL: https://github.com/abseil/abseil-cpp/blob/master/absl/log/internal/check_op.h#L52
* Chromium: https://source.chromium.org/chromium/chromium/src/+/main:base/check.h;l=185?q=DCHECK%20f:base&ss=chromium
* Android: https://cs.android.com/android/platform/superproject/+/master:system/libbase/include/android-base/logging.h;drc=bda7f0a0cc945c860713a1dc497919f17fad1651;l=321
Reviewed By: Chia-hungDuan, vitalybuka
Differential Revision: https://reviews.llvm.org/D141713
Added:
Modified:
compiler-rt/lib/scudo/standalone/internal_defs.h
Removed:
################################################################################
diff --git a/compiler-rt/lib/scudo/standalone/internal_defs.h b/compiler-rt/lib/scudo/standalone/internal_defs.h
index 621fc9c45e952..27c6b451ffe72 100644
--- a/compiler-rt/lib/scudo/standalone/internal_defs.h
+++ b/compiler-rt/lib/scudo/standalone/internal_defs.h
@@ -133,25 +133,25 @@ void NORETURN reportCheckFailed(const char *File, int Line,
#else
#define DCHECK(A) \
do { \
- } while (false)
+ } while (false && (A))
#define DCHECK_EQ(A, B) \
do { \
- } while (false)
+ } while (false && (A) == (B))
#define DCHECK_NE(A, B) \
do { \
- } while (false)
+ } while (false && (A) != (B))
#define DCHECK_LT(A, B) \
do { \
- } while (false)
+ } while (false && (A) < (B))
#define DCHECK_LE(A, B) \
do { \
- } while (false)
+ } while (false && (A) <= (B))
#define DCHECK_GT(A, B) \
do { \
- } while (false)
+ } while (false && (A) > (B))
#define DCHECK_GE(A, B) \
do { \
- } while (false)
+ } while (false && (A) >= (B))
#endif
// The superfluous die() call effectively makes this macro NORETURN.
More information about the llvm-commits
mailing list