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/java | |
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/java')
-rw-r--r-- | gcc/java/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/java/lex.c | 11 | ||||
-rw-r--r-- | gcc/java/parse.h | 4 |
3 files changed, 19 insertions, 7 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 1c0f9d4..4489f6a 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,7 +1,14 @@ +2004-08-19 Nathan Sidwell <nathan@codesourcery.com> + + * parse.h (JAVA_RADIX10_FLAG): Rename to ... + (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning. + * lex.c (do_java_lex): Adjust. + (error_if_numeric_overflow): Likewise. + 2004-08-18 Andrew Pinski <apinski@apple.com> - * class.c (make_local_function_alias): Only make a new decl if we support - alias attribute on all decls. + * class.c (make_local_function_alias): Only make a new decl if we + support alias attribute on all decls. 2004-08-18 Bryce McKinlay <mckinlay@redhat.com> diff --git a/gcc/java/lex.c b/gcc/java/lex.c index 5467d60..7c497bd 100644 --- a/gcc/java/lex.c +++ b/gcc/java/lex.c @@ -1303,9 +1303,14 @@ do_java_lex (YYSTYPE *java_lval) value = build_int_cst (long_suffix ? long_type_node : int_type_node, low, high); value = force_fit_type (value, 0, false, false); - SET_LVAL_NODE (value); + + if (radix != 10) + { + value = copy_node (value); + JAVA_NOT_RADIX10_FLAG (value) = 1; + } - JAVA_RADIX10_FLAG (value) = radix == 10; + SET_LVAL_NODE (value); #endif return INT_LIT_TK; } @@ -1733,7 +1738,7 @@ static void error_if_numeric_overflow (tree value) { if (TREE_CODE (value) == INTEGER_CST - && JAVA_RADIX10_FLAG (value) + && !JAVA_NOT_RADIX10_FLAG (value) && tree_int_cst_sgn (value) < 0) { if (TREE_TYPE (value) == long_type_node) diff --git a/gcc/java/parse.h b/gcc/java/parse.h index c873b85..9e4e0f8 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -910,9 +910,9 @@ struct parser_ctxt GTY(()) { TREE_PURPOSE (CPC_INSTANCE_INITIALIZER_LIST (C)) = (S); /* This is used by the lexer to communicate with the parser. It is - set on an integer constant if the radix is 10, so that the parser + set on an integer constant if the radix is NOT 10, so that the parser can correctly diagnose a numeric overflow. */ -#define JAVA_RADIX10_FLAG(NODE) TREE_LANG_FLAG_0(NODE) +#define JAVA_NOT_RADIX10_FLAG(NODE) TREE_LANG_FLAG_0(NODE) #ifndef JC1_LITE void java_complete_class (void); |