diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-05-28 17:33:14 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-05-28 17:33:14 +0000 |
commit | ef258422a399244345f8d5d1d65956ffff5ee6f7 (patch) | |
tree | 005b9830ad50445b6392fd80c98e1ea6584a5deb /gcc/real.h | |
parent | 3c0a32c9310d31a517b77e5e0b78c8464df21b63 (diff) | |
download | gcc-ef258422a399244345f8d5d1d65956ffff5ee6f7.tar.gz |
* tree.h: Forward-declare struct realvaluetype.
(struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
contain it.
(TREE_REAL_CST_PTR): New accessor.
(TREE_REAL_CST): Update.
* real.h: Include machmode.h.
(realvaluetype): Make it struct realvaluetype, not a typedef.
(build_real): Prototype here.
* tree.c: Include real.h.
(build_real): Allocate the REAL_VALUE_TYPE as a separate
object in GC memory, set TREE_REAL_CST_PTR to point to it.
(build_real_from_int_cst): Use build_real.
* ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
REAL_CST.
* builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
fold-const.c, print-tree.c, real.c, cp/mangle.c, cp/tree.c,
f/bld.c, f/com.c, f/expr.c, f/target.c, java/decl.c,
java/jcf-parse.c, java/parse.y, java/typeck.c: Include real.h.
* Makefile.in, cp/Make-lang.in, f/Make-lang.in,
java/Make-lang.in: Update dependency lists.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53959 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/real.h')
-rw-r--r-- | gcc/real.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/real.h b/gcc/real.h index 4b59378808f..143261eff81 100644 --- a/gcc/real.h +++ b/gcc/real.h @@ -22,6 +22,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #ifndef GCC_REAL_H #define GCC_REAL_H +#include "machmode.h" + /* Define codes for all the float formats that we know of. */ #define UNKNOWN_FLOAT_FORMAT 0 #define IEEE_FLOAT_FORMAT 1 @@ -87,12 +89,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define REAL_WIDTH \ (REAL_VALUE_TYPE_SIZE/HOST_BITS_PER_WIDE_INT \ + (REAL_VALUE_TYPE_SIZE%HOST_BITS_PER_WIDE_INT ? 1 : 0)) /* round up */ -typedef struct { +struct realvaluetype { HOST_WIDE_INT r[REAL_WIDTH]; -} realvaluetype; +}; /* Various headers condition prototypes on #ifdef REAL_VALUE_TYPE, so it needs - to be a macro. */ -#define REAL_VALUE_TYPE realvaluetype + to be a macro. realvaluetype cannot be a typedef as this interferes with + other headers declaring opaque pointers to it. */ +#define REAL_VALUE_TYPE struct realvaluetype /* Calculate the format for CONST_DOUBLE. We need as many slots as are necessary to overlay a REAL_VALUE_TYPE on them. This could be @@ -290,4 +293,8 @@ extern int target_negative PARAMS ((REAL_VALUE_TYPE)); extern void debug_real PARAMS ((REAL_VALUE_TYPE)); extern REAL_VALUE_TYPE ereal_atof PARAMS ((const char *, enum machine_mode)); +/* In tree.c: wrap up a REAL_VALUE_TYPE in a tree node. */ +extern tree build_real PARAMS ((tree, REAL_VALUE_TYPE)); + + #endif /* ! GCC_REAL_H */ |