diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-21 21:16:31 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-21 21:16:31 +0000 |
commit | 92a110bb708fa82e2520c5fc5187a8c748dad06e (patch) | |
tree | 0e7336163388dbd3f57d87088d5662843ae8a6fd | |
parent | edbc08a8d5983fba563e3dd60dc97b35f775411c (diff) | |
download | gcc-92a110bb708fa82e2520c5fc5187a8c748dad06e.tar.gz |
[PATCH 1/9] ENABLE_CHECKING refactoring
gcc/
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac (CHECKING_P): Define.
* system.h: Use CHECKING_P.
libcpp/
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac (CHECKING_P): Define.
* system.h (fancy_abort): Declare.
(abort): Define.
(gcc_assert): Define. Use CHECKING_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229149 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config.in | 7 | ||||
-rwxr-xr-x | gcc/configure | 9 | ||||
-rw-r--r-- | gcc/configure.ac | 5 | ||||
-rw-r--r-- | gcc/system.h | 4 | ||||
-rw-r--r-- | libcpp/ChangeLog | 9 | ||||
-rw-r--r-- | libcpp/config.in | 3 | ||||
-rwxr-xr-x | libcpp/configure | 5 | ||||
-rw-r--r-- | libcpp/configure.ac | 4 | ||||
-rw-r--r-- | libcpp/system.h | 21 |
10 files changed, 66 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc3cfa7cb93..f12681937f6 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 093478c2840..48d7e6441e6 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 6b160ae44a2..3122499da26 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 be721e6db3b..a30bb3b89e8 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 61790d74a72..f9c7e2a6128 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 d14a26108ce..972e9a5606f 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 8df00ec2357..5865eb363fc 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 8cf2f77cace..1c70c75eb44 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 5f008a4a67f..3fcbe84f33e 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 20f07bbe261..2250f10459c 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 |