[PATCH 1/9] ENABLE_CHECKING refactoring
authorMikhail Maltsev <maltsevm@gmail.com>
Tue, 13 Oct 2015 21:31:48 +0000 (21:31 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 13 Oct 2015 21:31:48 +0000 (15:31 -0600)
[PATCH 1/9] ENABLE_CHECKING refactoring
gcc/ChangeLog:

2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>

* common.opt: Add flag_checking.
* system.h (CHECKING_P): Define.

libcpp/ChangeLog:

2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>

* system.h (CHECKING_P, gcc_checking_assert): Define.

From-SVN: r228787

gcc/ChangeLog
gcc/common.opt
gcc/system.h
libcpp/ChangeLog
libcpp/system.h

index 750c73aad08c55754e9742b87baecdbf44373c0f..dc9b1f3867b758d56a181335cc6925cf6748e921 100644 (file)
@@ -1,3 +1,8 @@
+2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
+
+       * common.opt: Add flag_checking.
+       * system.h (CHECKING_P): Define.
+
 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
            Aldy Hernandez  <aldyh@redhat.com>
            Ilya Verbin  <ilya.verbin@intel.com>
index b0f70fb4e9ec3c1b78aa7128e9d308479428df03..50602082173b2a96d422561ed391b2e3ea7ab718 100644 (file)
@@ -46,6 +46,11 @@ int optimize_fast
 Variable
 bool in_lto_p = false
 
+; Enable additional checks of internal state consistency, which may slow
+; the compiler down.
+Variable
+bool flag_checking = CHECKING_P
+
 ; 0 means straightforward implementation of complex divide acceptable.
 ; 1 means wide ranges of inputs must work for complex divide.
 ; 2 means C99-like requirements for complex multiply and divide.
index f1694b94430327155ab10a6d6e8d1bc075639753..61790d74a726e29a88e193fc731e5eefbd80e26c 100644 (file)
@@ -716,8 +716,11 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
 
 #ifdef ENABLE_CHECKING
 #define gcc_checking_assert(EXPR) gcc_assert (EXPR)
+#define CHECKING_P 1
 #else
+/* N.B.: in release build EXPR is not evaluated.  */
 #define gcc_checking_assert(EXPR) ((void)(0 && (EXPR)))
+#define CHECKING_P 1
 #endif
 
 /* Use gcc_unreachable() to mark unreachable locations (like an
index 5cb23d032676240bfc50469d1611e14a16082d49..d14a26108ceafbcc7735256318212495efa79e1b 100644 (file)
@@ -1,3 +1,7 @@
+2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
+
+       * system.h (CHECKING_P, gcc_checking_assert): Define.
+
 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        PR c/66415
index a2e8c26b0b06f11382588eaaf7df204298013afd..20f07bbe2614fb5f1bc419fd0616fe7252b692cc 100644 (file)
@@ -391,6 +391,15 @@ extern void abort (void);
 #define __builtin_expect(a, b) (a)
 #endif
 
+#ifdef ENABLE_CHECKING
+#define gcc_checking_assert(EXPR) gcc_assert (EXPR)
+#define CHECKING_P 1
+#else
+/* N.B.: in release build EXPR is not evaluated.  */
+#define gcc_checking_assert(EXPR) ((void)(0 && (EXPR)))
+#define CHECKING_P 1
+#endif
+
 /* Provide a fake boolean type.  We make no attempt to use the
    C99 _Bool, as it may not be available in the bootstrap compiler,
    and even if it is, it is liable to be buggy.