blob: 35af21edd93a543b488021f10d5a47b65562bd33 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// file : odb/gcc-fwd.hxx
// copyright : Copyright (c) 2009-2017 Code Synthesis Tools CC
// license : GNU GPL v3; see accompanying LICENSE file
#ifndef ODB_GCC_FWD_HXX
#define ODB_GCC_FWD_HXX
#include <bversion.h>
#if BUILDING_GCC_MAJOR >= 6
// If we include <system.h> here, it pulls in all kinds of GCC trouble that
// "poisons" standard C/C++ declarations; see safe-ctype.h. So instead we
// are going to "exclude" safe-ctype.h. To compensate, however, we will
// include it first thing in gcc.hxx.
//
# include <config.h>
# define SAFE_CTYPE_H
# include <system.h>
# undef SAFE_CTYPE_H
# include <coretypes.h>
typedef unsigned int source_location; // <line-map.h>
typedef source_location location_t; // <input.h>
#else // GCC < 6
#if BUILDING_GCC_MAJOR > 4 || BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR > 8
# include <limits.h> // CHAR_BIT
# include <config.h>
#endif
#if BUILDING_GCC_MAJOR >= 5
# include <stdint.h> // Needed by coretypes.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>
typedef source_location location_t; // <input.h>
} // extern "C"
#endif
#endif // ODB_GCC_FWD_HXX
|