class.c (make_class_data): The superclass of an interface should be null, not class Object.
1999-02-05 Andrew Haley <aph@cygnus.com> * class.c (make_class_data): The superclass of an interface should be null, not class Object. * lex.c (java_lex): Sign extend hex literals. From-SVN: r25039
This commit is contained in:
parent
01235b8090
commit
93089423bd
|
@ -1,3 +1,10 @@
|
|||
1999-02-05 Andrew Haley <aph@cygnus.com>
|
||||
|
||||
* class.c (make_class_data): The superclass of an interface should
|
||||
be null, not class Object.
|
||||
|
||||
* lex.c (java_lex): Sign extend hex literals.
|
||||
|
||||
1999-02-04 Andrew Haley <aph@cygnus.com>
|
||||
|
||||
* class.c (build_utf8_ref): Output signatures using '.' as a
|
||||
|
|
|
@ -1135,7 +1135,8 @@ make_class_data (type)
|
|||
PUSH_FIELD_VALUE (cons, "accflags",
|
||||
build_int_2 (get_access_flags_from_decl (type_decl), 0));
|
||||
|
||||
PUSH_FIELD_VALUE (cons, "superclass", super);
|
||||
PUSH_FIELD_VALUE (cons, "superclass",
|
||||
CLASS_INTERFACE (type_decl) ? null_pointer_node : super);
|
||||
PUSH_FIELD_VALUE (cons, "constants", constant_pool_constructor);
|
||||
PUSH_FIELD_VALUE (cons, "methods",
|
||||
build1 (ADDR_EXPR, method_ptr_type_node, methods_decl));
|
||||
|
|
|
@ -850,11 +850,13 @@ java_lex (java_lval)
|
|||
/* 2147483648 is valid if operand of a '-'. Otherwise,
|
||||
2147483647 is the biggest `int' literal that can be
|
||||
expressed using a 10 radix. For other radixes, everything
|
||||
that fits within 32 bits is OK. */
|
||||
that fits within 32 bits is OK. As all literals are
|
||||
signed, we sign extend here. */
|
||||
int hb = (low >> 31) & 0x1;
|
||||
if (overflow || high || (hb && low & 0x7fffffff && radix == 10) ||
|
||||
(hb && !(low & 0x7fffffff) && !ctxp->minus_seen && radix == 10))
|
||||
JAVA_INTEGRAL_RANGE_ERROR ("Numeric overflow for `int' literal");
|
||||
high = -hb;
|
||||
}
|
||||
ctxp->minus_seen = 0;
|
||||
SET_LVAL_NODE_TYPE (build_int_2 (low, high),
|
||||
|
|
Loading…
Reference in New Issue