aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config.in7
-rwxr-xr-xgcc/configure9
-rw-r--r--gcc/configure.ac5
-rw-r--r--gcc/system.h4
-rw-r--r--libcpp/ChangeLog9
-rw-r--r--libcpp/config.in3
-rwxr-xr-xlibcpp/configure5
-rw-r--r--libcpp/configure.ac4
-rw-r--r--libcpp/system.h21
10 files changed, 66 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc3cfa7..f126819 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac (CHECKING_P): Define.
+ * system.h: Use CHECKING_P.
+
2015-10-11 Jan Hubicka <hubicka@ucw.cz>
PR ipa/67056
diff --git a/gcc/config.in b/gcc/config.in
index 093478c..48d7e64 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -30,6 +30,13 @@
#endif
+/* Define to 1 if you want more run-time sanity checks. This one gets a grab
+ bag of miscellaneous but relatively cheap checks. */
+#ifndef USED_FOR_TARGET
+#undef CHECKING_P
+#endif
+
+
/* Define 0/1 to force the choice for exception handling model. */
#ifndef USED_FOR_TARGET
#undef CONFIG_SJLJ_EXCEPTIONS
diff --git a/gcc/configure b/gcc/configure
index 6b160ae..3122499 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -7096,7 +7096,12 @@ if test x$ac_checking != x ; then
$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h
+ $as_echo "#define CHECKING_P 1" >>confdefs.h
+
nocommon_flag=-fno-common
+else
+ $as_echo "#define CHECKING_P 0" >>confdefs.h
+
fi
if test x$ac_df_checking != x ; then
@@ -18385,7 +18390,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18388 "configure"
+#line 18393 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18491,7 +18496,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18494 "configure"
+#line 18499 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gcc/configure.ac b/gcc/configure.ac
index be721e6..a30bb3b 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -569,7 +569,12 @@ if test x$ac_checking != x ; then
AC_DEFINE(ENABLE_CHECKING, 1,
[Define if you want more run-time sanity checks. This one gets a grab
bag of miscellaneous but relatively cheap checks.])
+ AC_DEFINE(CHECKING_P, 1,
+[Define to 1 if you want more run-time sanity checks. This one gets a grab
+ bag of miscellaneous but relatively cheap checks.])
nocommon_flag=-fno-common
+else
+ AC_DEFINE(CHECKING_P, 0)
fi
AC_SUBST(nocommon_flag)
if test x$ac_df_checking != x ; then
diff --git a/gcc/system.h b/gcc/system.h
index 61790d7..f9c7e2a 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -714,13 +714,11 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
#define gcc_assert(EXPR) ((void)(0 && (EXPR)))
#endif
-#ifdef ENABLE_CHECKING
+#if CHECKING_P
#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
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index d14a261..972e9a5 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,12 @@
+2015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac (CHECKING_P): Define.
+ * system.h (fancy_abort): Declare.
+ (abort): Define.
+ (gcc_assert): Define. Use CHECKING_P.
+
2015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
* system.h (CHECKING_P, gcc_checking_assert): Define.
diff --git a/libcpp/config.in b/libcpp/config.in
index 8df00ec..5865eb3 100644
--- a/libcpp/config.in
+++ b/libcpp/config.in
@@ -3,6 +3,9 @@
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
+/* Define to 1 if you want more run-time sanity checks. */
+#undef CHECKING_P
+
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
diff --git a/libcpp/configure b/libcpp/configure
index 8cf2f77..1c70c75 100755
--- a/libcpp/configure
+++ b/libcpp/configure
@@ -7300,6 +7300,11 @@ if test x$ac_checking != x ; then
$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h
+ $as_echo "#define CHECKING_P 1" >>confdefs.h
+
+else
+ $as_echo "#define CHECKING_P 0" >>confdefs.h
+
fi
if test x$ac_valgrind_checking != x ; then
diff --git a/libcpp/configure.ac b/libcpp/configure.ac
index 5f008a4..3fcbe84 100644
--- a/libcpp/configure.ac
+++ b/libcpp/configure.ac
@@ -166,6 +166,10 @@ IFS="$ac_save_IFS"
if test x$ac_checking != x ; then
AC_DEFINE(ENABLE_CHECKING, 1,
[Define if you want more run-time sanity checks.])
+ AC_DEFINE(CHECKING_P, 1,
+[Define to 1 if you want more run-time sanity checks.])
+else
+ AC_DEFINE(CHECKING_P, 0)
fi
if test x$ac_valgrind_checking != x ; then
diff --git a/libcpp/system.h b/libcpp/system.h
index 20f07bb..2250f10 100644
--- a/libcpp/system.h
+++ b/libcpp/system.h
@@ -391,13 +391,28 @@ extern void abort (void);
#define __builtin_expect(a, b) (a)
#endif
-#ifdef ENABLE_CHECKING
+/* Redefine abort to report an internal error w/o coredump, and
+ reporting the location of the error in the source file. */
+extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
+#define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__)
+
+/* Use gcc_assert(EXPR) to test invariants. */
+#if ENABLE_ASSERT_CHECKING
+#define gcc_assert(EXPR) \
+ ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0))
+#elif (GCC_VERSION >= 4005)
+#define gcc_assert(EXPR) \
+ ((void)(__builtin_expect (!(EXPR), 0) ? __builtin_unreachable (), 0 : 0))
+#else
+/* Include EXPR, so that unused variable warnings do not occur. */
+#define gcc_assert(EXPR) ((void)(0 && (EXPR)))
+#endif
+
+#if CHECKING_P
#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