aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@gcc.gnu.org>2004-08-19 10:36:07 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2004-08-19 10:36:07 +0000
commit89b0433e3a1f0a9ae590c1be5a6ba4b9aa690ae0 (patch)
treeba738aa254abf741ddc0722884b43575c2331ca6 /gcc/java
parentabc145a322be89c774fdcae8c883685d7943028a (diff)
downloadgcc-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/ChangeLog11
-rw-r--r--gcc/java/lex.c11
-rw-r--r--gcc/java/parse.h4
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);