diff options
author | Nathan Sidwell <nathan@gcc.gnu.org> | 2004-08-19 10:36:07 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2004-08-19 10:36:07 +0000 |
commit | 89b0433e3a1f0a9ae590c1be5a6ba4b9aa690ae0 (patch) | |
tree | ba738aa254abf741ddc0722884b43575c2331ca6 /gcc/tree.h | |
parent | abc145a322be89c774fdcae8c883685d7943028a (diff) | |
download | gcc-89b0433e3a1f0a9ae590c1be5a6ba4b9aa690ae0.zip gcc-89b0433e3a1f0a9ae590c1be5a6ba4b9aa690ae0.tar.gz gcc-89b0433e3a1f0a9ae590c1be5a6ba4b9aa690ae0.tar.bz2 |
tree.h (TYPE_CACHED_VALUES_P): New.
* tree.h (TYPE_CACHED_VALUES_P): New.
(TYPE_CACHED_VALUES): New.
(TYPE_ORIG_SIZE_TYPE): Adjust.
* tree.def (INTEGER_CST): Update documentation.
* tree.c: Inlcude params.h.
(build_int_cst): Cache small values.
(build_type_copy): Do not copy the value cache.
* c-common.c (c_common_nodes_and_builtins): Add comment, remove
unneeded zeroing.
* c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
* expmed.c (const_mult_add_overflow_p): Clear type copy's value
cache.
* fold-const.c (force_fit_type): Copy value when setting
overflows.
(int_const_binop): Likewise.
* stor-layout.c: Include params.h
(set_sizetype): Create values cache.
(fixup_unsigned_type): Set UNSIGNED_P before caching any values.
* params.def (PARAM_INTEGER_SHARE_LIMIT): New.
* params.h (INTEGER_SHARE_LIMIT): New.
* Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
* cp/decl.c (finish_enum): Do not copy value node early, copy
later.
* cp/lex.c (cxx_init): Force null_node to be unique.
* java/parse.h (JAVA_RADIX10_FLAG): Rename to ...
(JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
* java/lex.c (do_java_lex): Adjust.
(error_if_numeric_overflow): Likewise.
From-SVN: r86247
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -230,6 +230,8 @@ struct tree_common GTY(()) VAR_DECL or FUNCTION_DECL or IDENTIFIER_NODE ASM_VOLATILE_P in ASM_EXPR + TYPE_CACHED_VALUES_P in + ..._TYPE private_flag: @@ -782,6 +784,10 @@ extern void tree_operand_check_failed (int, enum tree_code, for this name in an inner scope. */ #define TREE_PUBLIC(NODE) ((NODE)->common.public_flag) +/* In a _TYPE, indicates whether TYPE_CACHED_VALUES contains a vector + of cached values, or is something else. */ +#define TYPE_CACHED_VALUES_P(NODE) (TYPE_CHECK(NODE)->common.public_flag) + /* In any expression, decl, or constant, nonzero means it has side effects or reevaluation of the whole expression could produce a different value. This is set if any subexpression is a function call, a side effect or a @@ -1377,10 +1383,13 @@ struct tree_block GTY(()) #define TYPE_SIZE(NODE) (TYPE_CHECK (NODE)->type.size) #define TYPE_SIZE_UNIT(NODE) (TYPE_CHECK (NODE)->type.size_unit) #define TYPE_MODE(NODE) (TYPE_CHECK (NODE)->type.mode) -#define TYPE_ORIG_SIZE_TYPE(NODE) (INTEGER_TYPE_CHECK (NODE)->type.values) #define TYPE_VALUES(NODE) (ENUMERAL_TYPE_CHECK (NODE)->type.values) #define TYPE_DOMAIN(NODE) (SET_OR_ARRAY_CHECK (NODE)->type.values) #define TYPE_FIELDS(NODE) (RECORD_OR_UNION_CHECK (NODE)->type.values) +#define TYPE_CACHED_VALUES(NODE) (TYPE_CHECK(NODE)->type.values) +#define TYPE_ORIG_SIZE_TYPE(NODE) \ + (INTEGER_TYPE_CHECK (NODE)->type.values \ + ? TREE_TYPE ((NODE)->type.values) : NULL_TREE) #define TYPE_METHODS(NODE) (RECORD_OR_UNION_CHECK (NODE)->type.maxval) #define TYPE_VFIELD(NODE) (RECORD_OR_UNION_CHECK (NODE)->type.minval) #define TYPE_ARG_TYPES(NODE) (FUNC_OR_METHOD_CHECK (NODE)->type.values) |