diff options
Diffstat (limited to 'odb/gcc-fwd.hxx')
-rw-r--r-- | odb/gcc-fwd.hxx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/odb/gcc-fwd.hxx b/odb/gcc-fwd.hxx index d459a9d..38f9819 100644 --- a/odb/gcc-fwd.hxx +++ b/odb/gcc-fwd.hxx @@ -5,8 +5,26 @@ #ifndef ODB_GCC_FWD_HXX #define ODB_GCC_FWD_HXX +#include <bversion.h> + +#if BUILDING_GCC_MAJOR > 4 || BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR > 8 +# include <limits.h> // CHAR_BIT +# include <config.h> +#endif + extern "C" { +// The hwint.h header uses gcc_checking_assert macro from system.h. But +// if we include system.h here, it pulls in all kinds of GCC trouble that +// "poisons" standard C/C++ declarations (see safe-ctype.h for an example). +// Instead we are just going to provide the no-op definition of this macro. +// +#if BUILDING_GCC_MAJOR > 4 || BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR > 8 +# define gcc_checking_assert(expr) ((void)(0 & (expr))) +# include <hwint.h> +# undef gcc_checking_assert +#endif + #include <coretypes.h> typedef unsigned int source_location; // <line-map.h> |