Commit Graph

86 Commits

Author SHA1 Message Date
Alexandre Petit-Bianco
1a6d4fb73c [multiple changes]
Sat Jul  3 22:26:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
 	CALL_EXPR, to avoid order of evaluation changes.
Fri Jul  2 17:44:08 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (qualify_ambiguous_name): Do not use
 	IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
Thu Jul  1 23:31:16 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* check-init.c (check_init): Handle MAX_EXPR.
	* expr.c (force_evaluation_order): Force method call arguments to
 	be evaluated in left-to-right order.
	* parse.y (qualify_ambiguous_name): Loop again to qualify
 	NEW_ARRAY_EXPR properly.
Wed Jun 30 17:27:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (patch_invoke): Resolve unresolved invoked method
 	returned type.
	(qualify_ambiguous_name): STRING_CST to qualify expression for
 	type name resolution.

From-SVN: r27998
1999-07-07 06:11:03 -07:00
Alexandre Petit-Bianco
2c56429a68 [multiple changes]
Fri Jun 25 13:35:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (resolve_package): Fixed bogus return statement.
	(patch_method_invocation): Resolve method invocation beginning with
 	a package name qualifier.
Thu Jun 24 13:12:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (java_complete_lhs): When doing cross referencing, don't
 	try to keep file location on a WFL expanded as a CALL_EXPR.
Wed Jun 23 14:37:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (finish_method_declaration): Insert a RETURN_EXPR when
 	compiling to class file a void method with an empty method body.
  	As a side effect, the bytecode backend will generate the
 	appropriate `return' instruction.
Tue Jun 22 20:43:49 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (lookup_package_type_and_set_next): New function prototype.
	(resolve_package): Search current and imported packages.
	(lookup_package_type_and_set_next): New function.

From-SVN: r27773
1999-06-25 09:33:20 -07:00
Andrew Haley
45b0aa3189 verify.c (verify_jvm_instructions): Check for pending blocks before invalid PC test and opcode switch, not after.
1999-06-22  Andrew Haley  <aph@cygnus.com>
	* verify.c (verify_jvm_instructions): Check for pending blocks
	before invalid PC test and opcode switch, not after.

From-SVN: r27710
1999-06-22 23:22:13 +00:00
Alexandre Petit-Bianco
8576f0942e [multiple changes]
Mon Jun 14 13:13:39 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (qualify_ambiguous_name): Reorganized the post
 	evaluation of non WFL leading expression nodes.
Fri Jun 11 21:37:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
 	CONVERT_EXPR.
Thu Jun 10 22:26:17 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (qualify_ambiguous_name): Handle qualified expression
 	beginning with a STRING_CST.
Thu Jun 10 20:27:25 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (register_fields): Set DECL_INITIAL on both
 	pre-initialized static and public fields.
	(resolve_field_access): Static field access expressions to always
 	use pointer types.
	(qualify_ambiguous_name): Work out buried CALL_EXPR for proper
 	qualification. CONVERT_EXPR to be resolved as an expression name.
	(java_complete_lhs): Identify and access qualified final
 	initialized field in switch statement case expression.
	(fold_constant_for_init): Pre-initialized field decl constant to
 	be folded.

From-SVN: r27523
1999-06-14 10:15:35 -07:00
Alexandre Petit-Bianco
fe0e4d76c2 parse.y (note_possible_classname): Mark returned node with QUALIFIED_P only if the original class name contained a '/'.
Mon Jun  7 16:09:51 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (note_possible_classname): Mark returned node with
 	QUALIFIED_P only if the original class name contained a '/'.

From-SVN: r27396
1999-06-07 10:08:34 -07:00
Alexandre Petit-Bianco
930248932e [multiple changes]
Fri May 28 18:22:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (lookup_field_wrapper): Unified returned value to NULL
          or the searched field decl.
Fri May 28 11:34:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (fold_constant_for_init): Convert numerical constant
        values to the type of the assigned field.
Thu May 27 19:57:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * expr.c (lookup_field): Relaxed the test on class loading error
        detection.
        * parse.y (fold_constant_for_init): Enabeled old code.
Wed May 26 18:06:02 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
        decide the validity of the cast of a java.lang.Cloneable reference
        to an array.
        (patch_conditional_expr): Fixed first argument passed to
        binary_numeric_promotion.

From-SVN: r27229
1999-05-28 12:26:08 -07:00
Alexandre Petit-Bianco
2ba1f15fb9 parse.y (qualify_ambiguous_name): Take into account that a CONVERT_EXPR might specify a type as a WFL.
Wed May 26 15:33:06 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (qualify_ambiguous_name): Take into account that a
        CONVERT_EXPR might specify a type as a WFL.

From-SVN: r27181
1999-05-26 08:41:34 -07:00
Alexandre Petit-Bianco
dc4e6ccfe5 [multiple changes]
Tue May 25 15:06:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (patch_assignment): Save the rhs before using it as an
        argument to _Jv_CheckArrayStore.
Tue May 25 11:23:59 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* lex.c (java_parse_doc_section): Fixed `tag' buffer size.
Mon May 24 13:26:00 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
        floating point litteral only when the exponent indicator has been
        parsed.

From-SVN: r27147
1999-05-25 09:36:07 -07:00
Alexandre Petit-Bianco
5256aa37b4 [multiple changes]
Sat May 22 13:54:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (formal_parameter:): Construct argument tree list
 	element even if a yet unsupported final parameter was encountered.
Tue May 18 00:28:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (finish_method_declaration): Issue errors for native or
 	abstract methods declared with a method body, as well as for non
 	native or non abstract methods with no method body.

From-SVN: r27104
1999-05-22 07:38:13 -07:00
Kaveh R. Ghazi
ab3a6dd6e2 Warning fixes:
* class.c (build_utf8_ref): Initialize variable `field'.
        * decl.c (init_decl_processing): Initialize variable `field'.
        * expr.c (build_known_method_ref): Mark parameters `method_type',
        `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
        (process_jvm_instruction): Likewise for parameter `length'.
        * jvspec.c (lang_specific_driver): Mark variables `saw_math',
        `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
        ATTRIBUTE_UNUSED.
        * parse.y (maybe_generate_clinit): Remove unused variable
        `has_non_primitive_fields'.
        (find_in_imports_on_demand): Initialize variables `node_to_use'
        and `cl'.
        (patch_binop): Likewise for variable `prom_type'.
        (patch_unaryop): Likewise for variable `prom_type'.
        * verify.c (verify_jvm_instructions): Likewise for variable `last'.
        * xref.c (xref_table): Add missing initializer.

From-SVN: r27030
1999-05-19 11:30:30 +00:00
Alexandre Petit-Bianco
2e5eb5c578 parse.y (constructor_block_end:): New rule, tagged <node>.
Mon May 17 19:20:24 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (constructor_block_end:): New rule, tagged <node>.
        (constructor_body:): Use `constructor_block_end' instead of
        `block_end'.

From-SVN: r26978
1999-05-17 12:33:13 -07:00
Alexandre Petit-Bianco
6efa1cc273 parse.y (statement_nsi:): Pop `for' statement block.
Mon May 17 18:01:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (statement_nsi:): Pop `for' statement block.
	(java_complete_lhs): Labelled blocks containing no statement are
 	marked as completing normally.
(Part of the previous check-in, where the generated parse.c was
forgotten.)

From-SVN: r26977
1999-05-17 11:32:30 -07:00
Alexandre Petit-Bianco
1fb89a4d59 parse.y (java_check_regular_methods): Warning check on not overriding methods with default access in other packages...
Thu May 13 18:30:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (java_check_regular_methods): Warning check on not
 	overriding methods with default access in other packages does not
 	apply to `<clinit>'.
	(java_complete_lhs): If block body is an empty_stmt_node, replace
 	it by NULL_TREE. This avoid gcc generating an irrelevant warning.

From-SVN: r26930
1999-05-13 12:01:19 -07:00
Alexandre Petit-Bianco
ce6e914727 check-init.c (check_init): Removed code accepting to see things falling through default:, when doing xrefs.
Thu May 13 13:23:38 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* check-init.c (check_init): Removed code accepting to see things
	falling through default:, when doing xrefs.
	* java-tree.h (do_not_fold): New global variable, declared.
	* parse.y (do_not_fold): New global variable, defined.
	(java_complete_expand_method): Set `do_not_fold' to the value of
 	`flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
 	and reinstall them after them have been purged; do not check for
 	initializations; do not issue missing return errors.
	(java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
 	when doing xrefs.
	(patch_binop): Skip the fold part when doing xrefs.
	(build_string_concatenation): Skip the concatenation part when
 	doing xrefs.
	(patch_synchronized_statement): Do not generate a try-finally when
 	doing xrefs.
	(patch_throw_statement): When doing xrefs, do not call BUILD_THROW
 	and keep the location where the throw was seen.
	* typeck.c (convert): When `do_not_fold' is set, do not attempt
 	any treatment on the converted node an simply return a NOP_EXPR of
 	the targeted type.
	* xref.c (xref_get_data): New function, defined.
	* xref.h (xref_get_data): New function, declared.
	(XREF_GET_DATA): Use xref_get_data.

From-SVN: r26926
1999-05-13 07:33:37 -07:00
Andrew Haley
138657ecb0 parse.y (source_end_java_method): If the current method contains any exception handlers...
1999-05-11  Andrew Haley  <aph@cygnus.com>
        * parse.y (source_end_java_method): If the current method contains
        any exception handlers, force asynchronous_exceptions: this is
        necessary because signal handlers in libjava may throw exceptions.
        * decl.c (end_java_method): Ditto.

From-SVN: r26884
1999-05-11 12:09:13 +00:00
Per Bothner
cd9643f75b class.c (make_field_value): DECL_INITIAL may be a string literal...
d
	* class.c (make_field_value):  DECL_INITIAL may be a string literal;
	temporarily zero it while calling rest_of_decl_compilation.
	* java-tree.h (string_ptr_type_node):  Add declaration.
	* decl.c:  Define and initialize string_ptr_type_node.
	* parse.y (patch_string_cst):  Use string_ptr_type_node.
	* parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P):  Removed.
	* parse.y (for_statement):  Now unconditionally exit_block.
	(finish_labeled_statement):  No longer exit_block if for-loop.
	(patch_loop_statement):  Check harder if the loop is already labeled.
	* parse.y (patch_initialized_static_field):  Removed function.
	(maybe_generate_clinit):  Removed special handling for interfaces.
	(java_complete_expand_methods):  Do a preliminary java_complete_tree
	on <clinit> to determine if it can be removed.
	(java_complete_expand_method):  Remove special handling for <clinit>.
	(java_complete_lhs):  For BLOCK and EXPR_WITH_FILE_LOCATION
	optimize if we get back empty_stmt_node.
	For MODIFY_EXPR, re-do checking of static initializers.
	(fold_constant_for_init):  Don't return immediate if VAR_DECL.
	For VAR_DECL, pass correct context.

From-SVN: r26790
1999-05-05 14:10:07 -07:00
Alexandre Petit-Bianco
7f10c2e2fc check-init.c (check_init): Exclude a case of error when doing xrefs.
Fri Apr 30 17:54:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* check-init.c (check_init): Exclude a case of error when doing
 	xrefs.
	* class.c (layout_class_method): Don't generate the error message
 	twice when compiling from source.
	* lang-options.h: Added `-Wredundant-modifers' and
	`-Wunusupported-jdk11' flags and help text.
	* lang.c (lang_decode_option): Added support for
 	`-Wunsupported-jdk11' and `-Wredundant-modifiers'.
	flag_static_local_jdk11 and flag_redundant set accordingly.
	* lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
	* parse.h (EXPR_WFL_ADD_COL): New macro.
	(DECL_END_SOURCE_LINE): Likewise.
	(DECL_INHERITED_SOURCE_LINE): Likewise.
	* parse.y (static_ref_err): New function, prototyped.
	(CCB_TK): Now tagged <operator>.
	(class_body:): Remember the location of the closing '}' of a class
 	definition when doing xrefs.
	(block:): Likewise.
	(block_end:): Likewise.
	(create_class): Remember the location of the inherited class
 	identifier when doing xrefs.
	(register_fields): Added test on first operand of `init' before
 	testing it TREE_CODE.
	(method_header): Store the location of the class identifier in the
 	class decl when doing xrefs.
	(finish_method_declaration): Don't combine first/last method line
 	when doing xref.
	(java_check_regular_methods): Warning check on not overriding
 	methods with default access on other packages move before check on
 	static methods. Initialization of `aflags' also moved up.
	(resolve_expression_name): Call static_ref_err to report the error.
	(static_ref_err): New function, implemented.
	(resolve_field_access): Returned simplified static field access
 	when doing xrefs.
	(resolve_qualified_expression_name): Check for illegal use of
 	static fields in a non static context. Call static_ref_err to
 	report error in various places.
	(java_complete_tree): To not fold initialized static fields when
 	doing xrefs.
	(java_complete_lhs): Likewise.

From-SVN: r26758
1999-05-03 09:45:18 -07:00
Alexandre Petit-Bianco
7f1d48663e class.c (layout_class_method): Generate <clinit>'s rtl for interfaces.
Sat Apr 24 16:50:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* class.c (layout_class_method): Generate <clinit>'s rtl for
 	interfaces.
	* decl.c (complete_start_java_method): Don't call _Jv_InitClass
 	for interfaces' <clinit>.
	* expr.c (lookup_field): Search for fields in interfaces.
	(expand_invoke): Fixed indentation.
	(expand_java_field_op): Likewise. Use IS_CLINIT.
	* parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
	(IS_CLINIT): New macro.
	* parse.y (type_declaration:): Call maybe_generate_clinit after an
 	interface was parsed.
	(maybe_generate_clinit): Don't generate if the current class is an
 	interface with only fields of primitive types.
	(reset_method_name): Use IS_CLINIT.
	(java_complete_expand_method): Expand <clinit> when it exists for
 	interfaces. Use IS_CLINIT.
	(resolve_expression_name): Use DECL_CONTEXT instead of
 	current_class to build static field references.
	(java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
 	ARRAY_REF when doing xreferencing.
	(check_final_assignment): Fixed typo in leading comment. Use
 	IS_CLINIT.
	(patch_array_ref): Don't fully expand array references when
 	xreferencing.
	(patch_return): Use IS_CLINIT.
	(patch_throw_statement): Likewise.

From-SVN: r26661
1999-04-26 12:09:37 -07:00
Alexandre Petit-Bianco
5423609c57 decl.c (predef_filenames, [...]): New globals
Wed Apr 21 11:13:36 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* decl.c (predef_filenames, predef_filenames_size): New globals
	(init_decl_processing): predef_filenames and predef_filenames_size
 	initialized.
	* java-tree.h (predef_filenames, predef_filenames_size): Declared
 	extern.
	* jcf-parse.c (predefined_filename_p): New function.
	(yyparse): Check that files on the command line are specified only
 	once and issue a warning otherwise.
	* parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
	* parse.y (source_end_java_method): Nullify NOP method bodies, to
 	avoid a gcc warning with -W -Wall turned on.
	(java_expand_classes): Abort if errors were encountered.
	(java_complete_lhs): If the cross reference flag is set, wrap
 	field DECL node around a WFL when resolving expression name.

From-SVN: r26578
1999-04-21 06:49:49 -07:00
Tom Tromey
a3f406ce4c xref.h (enum): Removed trailing comma.
* xref.h (enum): Removed trailing comma.
	* parse.y (resolve_qualified_expression_name): Added missing
	`break'.

From-SVN: r26546
1999-04-19 10:20:27 +00:00
Alexandre Petit-Bianco
b3edebcf49 parse.y (patch_unaryop): Fix ++ operator check on array references.
Mon Apr 12 18:27:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (patch_unaryop): Fix ++ operator check on array
 	references.

From-SVN: r26382
1999-04-12 11:32:22 -07:00
Alexandre Petit-Bianco
2622b94785 parse.y (patch_assignment): Added ArrayStoreException runtime check.
Tue Apr  6 15:15:51 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (patch_assignment): Added ArrayStoreException runtime
        check.

From-SVN: r26318
1999-04-09 09:26:33 -07:00
Per Bothner
7c3f7c03af parse.y (patch_binop): Don't fold if non-constant and emiting class files.
�
	* parse.y (patch_binop):  Don't fold if non-constant and emiting
	class files.

From-SVN: r26215
1999-04-06 07:27:19 -07:00
Kaveh R. Ghazi
4504ead1db class.c (add_method_1): Cast the argument of `bzero' to PTR.
* class.c (add_method_1): Cast the argument of `bzero' to PTR.
        * decl.c (copy_lang_decl): Likewise for `bcopy'.
        * jcf-depend.c: Include "config.h", not <config.h>.
        * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
        `bcopy' to PTR.
        * jcf-path.c: Include "config.h", not <config.h>.
        * lex.c: Don't include various system header files.
        (java_init_lex): Cast the argument of `bzero' to PTR
        * parse-scan.y (java_push_parser_context): Likewise.
        * parse.y (java_push_parser_context): Likewise.
        * xref.c: Don't include <stdio.h>.

From-SVN: r26203
1999-04-05 13:04:38 +00:00
Alexandre Petit-Bianco
d4370213f6 parse.y (struct parser_ctxt *ctxp): Now global.
Mon Apr  5 11:24:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (struct parser_ctxt *ctxp): Now global.
	(declare_local_variables): Use WFL compound value for the
 	declaration source line value, when doing cross-referencing.

From-SVN: r26201
1999-04-05 05:00:08 -07:00
Alexandre Petit-Bianco
1504b2b439 [multiple changes]
Tue Mar 30 11:31:53 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (patch_bc_statement): Fixed identation and a bogus
 	`printf' format.
Tue Mar 30 11:29:29 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (patch_assignment): Allow static variables in other
 	classes to be assigned.

From-SVN: r26065
1999-03-30 03:35:27 -08:00
Alexandre Petit-Bianco
f099f336d1 [multiple changes]
Sat Mar 27 15:13:21 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
 	using a WFL compound value.
	* parse.y (xref.h): Include.
	(maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
 	WFL compound value.
	(register_fields): Set WFL compound value to lineno if doing
 	xrefs.
	(java_complete_expand_method): Call expand_xref if flag_emit_xref
 	is set.
	* xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
	* xref.h (expand_xref): Prototype renamed from xref_generate.
Sat Mar 27 14:16:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
	(GET_CURRENT_BLOCK): New macro.
	* parse.y (current_static_block): New global variable.
	(method_body:): Define action.
	(complete_method_declaration): Set current_function_decl to NULL
 	when work on the current method is done.
	(declare_local_variables): Use GET_CURRENT_BLOCK.
	(java_method_add_stmt): Likewise.
	(java_complete_expand_method): Disable the use of `this' when
 	expanding <clinit>.
	(enter_a_block): If no current method exist, use
 	current_static_block to link static initializer blocks.
	(exit_block): Rewritten to use current_static_block when no current
 	method decl exists.
	(lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
	(patch_return): Forbid the use of `return' in static initializers.
	(patch_throw_statement): Fixed indentation. Issue specific error
 	for uncaught thrown checked exception in static initializer
 	blocks. Removed FIXME.

From-SVN: r26018
1999-03-27 08:17:16 -08:00
Per Bothner
e85ac860ae *** empty log message ***
From-SVN: r26016
1999-03-27 08:05:27 -08:00
Alexandre Petit-Bianco
de0b553f86 parse.y (find_applicable_accessible_methods_list): When dealing with interface...
Tue Mar 23 10:48:24 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (find_applicable_accessible_methods_list): When dealing
 	with interface: ensure that a given interface or java.lang.Object
 	are searched only once.

From-SVN: r25925
1999-03-23 03:20:03 -08:00
Kaveh R. Ghazi
9ee9b55502 Warning fixes:
* gjavah.c (print_c_decl): Remove unused argument `flags'.
        * jcf-dump.c (print_access_flags): Add braces around if-else.
        * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
        COMBINE_INPUTS.
        * lex.c (build_wfl_node): Add static prototype.
        * lex.h (build_wfl_node): Remove static prototype.
        * parse.y: Include lex.c early enough to declare everything needed.
        Ensure calls to `build_wfl_node' pass the proper arguments.
        (create_class): Remove unused variable `super_decl'.
        (get_printable_method_name): Initialize variable `name'.

From-SVN: r25921
1999-03-23 07:24:15 +00:00
Alexandre Petit-Bianco
89004479b3 parse.y (find_applicable_accessible_methods_list): Extend the search to superinterfaces when relevant.
1999-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (find_applicable_accessible_methods_list): Extend the
	search to superinterfaces when relevant.
	(search_applicable_methods_list): New function.
(Previous check didn't have the right path in the `#line' directives.)

From-SVN: r25863
1999-03-19 05:15:44 -08:00
Alexandre Petit-Bianco
cc596f8cbb parse.y (find_applicable_accessible_methods_list): Extend the search to superinterfaces when relevant.
1999-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (find_applicable_accessible_methods_list): Extend the
	search to superinterfaces when relevant.
	(search_applicable_methods_list): New function.
(parse.c wasn't part of the last check-in.)

From-SVN: r25862
1999-03-19 05:08:32 -08:00
Per Bothner
4fdea7b0d1 parse.y (java_complete_lhs): Call force_evaluation_order after patch_newarray.
x
	* parse.y (java_complete_lhs):  Call force_evaluation_order
	after patch_newarray.
	(patch_binop):  Don't call fold if there are side effects.

From-SVN: r25807
1999-03-16 08:25:14 -08:00
Alexandre Petit-Bianco
642f15d187 parse.y (java_stabilize_reference): Use save_expr instead of building a SAVE_EXPR node.
1999-03-16  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (java_stabilize_reference): Use save_expr instead of
	building a SAVE_EXPR node.
	(java_complete_lhs): Patch the resulting string of the `+='
	operator (if necessary) and complete the RHS after having built
	the cast.

From-SVN: r25797
1999-03-15 19:38:15 -08:00
Per Bothner
2c3199bc4a class.c (make_class): Don't set CLASS_P here (because this function is also called by...
d
	* class.c (make_class):  Don't set CLASS_P here (because
	this function is also called by build_java_array_type).
	(push_class):  Set CLASS_P here instead.
	* parse.h (TYPE_CLASS_P):  Check for TYPE_ARRAY_P is redundant.
	* jcf-dump.c (print_access_flags):  Take extra parameter to indicate
	context.  If the context is class, perfer "super" over "synchronized".
	* jcf-write.c (generate_classfile):  Don't add ACC_SUPER if interface.
	* parse.y (create_class):  Don't call parser_check_super here;
	it is not robust.  Always wait until later.
	* parse.y (method_header):  For interfaces, set ACC_ABSTRACT (to
	match what JDK 1.2 does), but don't set ACC_PUBLIC.

From-SVN: r25784
1999-03-15 05:09:44 -08:00
Alexandre Petit-Bianco
2aa11e9772 parse.y (java_stabilize_reference): Return NODE when patching a COMPOUND_EXPR.
1999-03-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y (java_stabilize_reference): Return NODE when patching a
	COMPOUND_EXPR.
	(java_complete_lhs): Put parenthesis around truth values.
1999-03-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* class.c (layout_class_method): Don't make rtl for interface
	methods.
	* parse.h (GET_TYPE_NAME): New macro.
	* parse.y (if_then_statement:): Fixed indentation.
	(if_then_else_statement:): Likewise.
	(for_statement:): Fixed spacing.
	(try_statement:): Fixed indentation.
	(create_interface): Don't force interfaces to be abstract.
	(method_header): Abstract methods are OK in interfaces.
	(declare_local_variables): Fixed typo in comment.
	(java_complete_expand_method): Fixed indentation.
	(resolve_qualified_expression_name): Use GET_TYPE_NAME to report
	non accessible fields.
	(java_stabilize_reference): New function.
	(java_complete_lhs): Fixed indentation. Use
	java_stabilize_reference in compound assignement. Insert the
	cast. If not processing `+' fix string constants before processing
	binop.

From-SVN: r25733
1999-03-12 10:19:04 -08:00
Kaveh R. Ghazi
7e21fe59b2 Warning fixes:
* constants.c (find_class_or_string_constant): Cast variable `j'
        to a `jword' when comparing against one.
        * expr.c (java_lang_expand_expr): Remove unused variables
        `has_finally_p' and `op0'.
        * gjavah.c (print_field_info): Cast a value to jint when comparing
        against one.  Likewise for a jlong.
        (add_namelet): Likewise cast a `sizeof' to an int when comparing
        against a signed quantity.
        * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
        (print_signature): Don't needlessly dereference variable `str'
        * jcf-reader.c (get_attribute): Mark variables `max_stack' and
        `max_locals' with ATTRIBUTE_UNUSED.
        (jcf_parse_class): Likewise for variable `index'.
        * parse.h (reverse_jdep_list): Remove static prototype.
        * parse.y (build_jump_to_finally): Remove prototype and definition.
        (reverse_jdep_list): Add static prototype.
        * typeck.c (convert_ieee_real_to_integer): Remove unused variables
        `assignment' and `expr_decl'.
        * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.

From-SVN: r25731
1999-03-12 17:13:24 +00:00
Per Bothner
c0d87ff6f9 *** empty log message ***
From-SVN: r25640
1999-03-08 05:34:10 -08:00
Tom Tromey
345137c78a parse.y (read_import_dir): Use |=', not +=', to set `found'.
* parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
	When reading a zip file, only use strncmp if both strings are
	bigger than the buffer length.  Initialize `k' when looping
	through zip file.

From-SVN: r25439
1999-02-25 12:36:03 +00:00
Per Bothner
939d7216dc decl.c (build_result_decl): New method.
d
	* decl.c (build_result_decl), java-tree.h:  New method.
	(complete_start_java_method):  Handle synchronized methods.
	Don't build DECL_RESULT here.  (Ordering dependency problem.)
	(start_java_method):  Call build_result_decl here instead  ...
	* parse.y (java_complete_expand_method):  ... and here.
	(expand_start_java_method): Don't call complete_start_java_method here.
	(java_complete_expand_method):  Call it here instead.
	* parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT):  Moved to ..
	* java-tree.h:  ... here.
	* expr.c (force_evaluation_order):  Fix typo, don't handle ARRAY_REF.
	* parse.y (java_complete_lhs):  Don't call force_evaluation_order
	for ARRAY_REF - it doesn't work when array bounds are checked.
	(patch_array_ref):  Handle it here instead.

From-SVN: r25346
1999-02-21 07:42:27 -08:00
Per Bothner
78d21f929b parse.y (obtain_incomplete_type): Don't wrap unknown types in TREE_LIST - just chain the POINTER_TYPEs together.
d
	* parse.y (obtain_incomplete_type):  Don't wrap unknown types
	in TREE_LIST - just chain the POINTER_TYPEs together.
	(resolve_class):  If type already resolved, return decl.
	After resolving, update TREE_TYPE(class_type), and name (if array).
	* parse.h (do_resolve_class), parse.y:  Make non-static.
	* class.c (maybe_layout_super_class):  Take this_class argument.
	Do do_resolve_class if necessary.
	(layout_class, layout_class_methods): Adjust calls appropriately.
	* parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
	JDEP_RESOLVED_P):  Redefined for new TREE_LIST-less convention.
	* typeck.c (build_java_array_type):  Don't call layout_class.

From-SVN: r25324
1999-02-19 06:55:23 -08:00
Per Bothner
a7d8d81f7c Use new TRY_FINALLY_EXPR tree node.
�
Use new TRY_FINALLY_EXPR tree node.  See ChangeLog.

From-SVN: r25314
1999-02-19 04:32:50 -08:00
Alexandre Petit-Bianco
0b4d333e01 [multiple changes]
Thu Jan 28 11:50:11 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* jcf-parse.c (jcf_parse): Don't parse the same class file twice.
	* parse.y (patch_cast): Allow a boolean to be cast into a
 	boolean.
Wed Jan 27 10:19:29 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.y: (class_declaration:): Fixed indentation.
	(class_member_declaration:): Extra `;' after field declaration now
 	accepted.
	(interface_declaration:): Removed debug messages in error reports.
	(patch_binop): Nodes created and returned inherit the orignal
 	node's COMPOUND_ASSIGN_P flag value.
	(patch_cast): Fix cast from char to floating point.

From-SVN: r25244
1999-02-16 03:49:46 -08:00
Tom Tromey
0ffe9eeafa jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
* jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
	(GC_NAME): Renamed -lgc to -lgcjgc.

From-SVN: r25135
1999-02-10 14:05:24 +00:00
Alexandre Petit-Bianco
09ed0f70df lex.c (java_lang_cloneable): Initialize.
Tue Feb  9 19:31:09 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* lex.c (java_lang_cloneable): Initialize.
	* parse.y (java_lang_cloneable): New static variable.
	(qualify_ambiguous_name): Take CONVERT_EXPR into account when
 	doing one more qualification round.
	(valid_ref_assignconv_cast_p): Reject null source or
 	destination. Allow an array to be cast into java.lang.Cloneable.
	(patch_cast): Swapped two first arguments to first call to
 	valid_ref_assignconv_cast_p.

From-SVN: r25114
1999-02-09 11:40:16 -08:00
Alexandre Petit-Bianco
34f4db93fc parse.h: DECL_P renamed JDECL_P.
Mon Feb  8 11:50:50 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* parse.h: DECL_P renamed JDECL_P.
        * parse.y: DECL_P replaced by JDECL_P.
        (build_array_from_name): Always use pointer's type.
        (patch_bc_statement): Extra code to search continue target in a
        for loop. Fixed comments. Continue target is current loop when
        unlabeled.

From-SVN: r25082
1999-02-08 03:54:04 -08:00
Alexandre Petit-Bianco
acd663ee8d lex.c (java_read_char): Fixed utf8 decoding.
Fri Jan 29 18:19:02 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* lex.c (java_read_char): Fixed utf8 decoding.
	(java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
 	range.
	* parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
 	comments. Local variable `all_primitive' is gone. Broadened
 	acceptance of `0' to floating point targets. `long' can now be
 	widened to `double' or `float'.
	(valid_method_invocation_conversion_p): Added leading
 	comment. Fixed tabulation.
	(build_string_concatenation): Optimize out left or right empty
 	string constants.

From-SVN: r25078
1999-02-08 03:20:39 -08:00
Per Bothner
bccaf73a05 parse.y (patch_method_invocation): Handle calling static methods...
d
	* parse.y (patch_method_invocation):  Handle calling static methods,
	even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
	* parse.y (java_complete_lhs):  Don't complain about unreachable
	exit condition in a do-while statement.

From-SVN: r24968
1999-02-02 04:06:59 -08:00
Tom Tromey
061ac42618 parse.h (BUILD_APPEND): If ARG is a non-String object reference...
* parse.h (BUILD_APPEND): If ARG is a non-String object reference,
	then cast it to Object before calling `append' method.

From-SVN: r24907
1999-01-29 15:16:12 +00:00
Kaveh R. Ghazi
d4476be259 Warning fixes:
* Makefile.in (parse.o): Depend on $(CONFIG_H) and
        $(srcdir)/../system.h.
        (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
        (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
        (jcf-write.o): Likewise.
        (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
        (mangle.o): Depend on $(srcdir)/../toplev.h.
        (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
        (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
        * class.c: Include output.h and parse.h.
        (mangled_classname): Add the `const' keyword to a char*.
        (find_named_method): Hide unused function definition.
        (build_utf8_ref): Change type of variable `c' to unsigned char.
        Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
        (build_class_ref): Add the `const' keyword to a char*.
        (layout_class_method): Remove unused variable `buf'.
        * decl.c (find_local_variable): Remove unused variable `rtl'.
        (pushdecl): Likewise for variables `different_binding_level' and
        `oldglobal'.
        (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
        (maybe_build_cleanup): Likewise for parameter `decl'.
        * except.c (expand_start_java_handler): Mark parameter `range'
        with ATTRIBUTE_UNUSED.
        * expr.c: Include except.h.
        (pop_type): Remove unused variable `i'.
        (pop_value): Likewise for variables `n_words' and `i'.
        (expand_java_arrayload): Likewise for variable `convert'.
        (java_lang_expand_expr): Likewise for variables `op0', `type',
        `mode', `unsignedp', `node' and `elements'.
        (expand_byte_code): Likewise for variables `prev_eh_ranges' and
        `eh_ranges'.
        (process_jvm_instruction): Add a `const' qualifier to a char*.
        * gjavah.c (output_directory): Add the `const' keyword to a char*.
        (temp_directory): Likewise.
        (print_c_decl): Likewise.
        (print_method_info): Likewise.
        (decode_signature_piece): Likewise.
        (print_mangled_classname): Likewise.
        * java-except.h: Provide prototypes for maybe_start_try,
        maybe_end_try and add_handler.
        * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
        (parse_error_context): Likewise.  Also add ATTRIBUTE_PRINTF_2.
        (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
        init_expr_processing, push_super_field, init_class_processing,
        can_widen_reference_to, class_depth, verify_jvm_instructions,
        maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
        set_local_type, merge_type_state, push_type, load_type_state,
        add_interface, find_in_current_zip, append_gpp_mangled_classtype,
        emit_unicode_mangled_name): Add prototypes.
        * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
        (print_signature_type): Use ISDIGIT, not isdigit.
        (print_signature): Remove unused variable `j'.
        * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
        int when comparing against one.
        * jcf-parse.c: Include toplev.h.
        * jcf-write.c: Likewise.  Don't include <string.h> or <sys/stat.h>.
        (localvar_free): Remove unused variable `i'.
        (generate_bytecode_conditional): Likewise for variable `kind'.
        * jv-scan.c: Include config.h and system.h.  Remove redundant
        OS header and gansidecl.h includes.
        (warning): Add the `const' keyword to a char*.  Also add
        ATTRIBUTE_PRINTF_1 to the prototype.  Check ANSI_PROTOTYPES, not
        __STDC__, when determining whether to use ANSI-isms.
        (fatal): Likewise.  Also add ATTRIBUTE_UNUSED.
        (xmalloc): Don't redundantly prototype here.
        (main): Remove unused parameter `envp'.  Also fix the arguments
        passed to function `fatal' to match the format specifier.
        * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
        * mangle.c: Include toplev.h.
        (emit_unicode_mangled_name): Declare parameter `len'.
        * parse.y (parse_warning_context): Add the `const' keyword to a
        char*.  Also add ATTRIBUTE_PRINTF_2 to the prototype.  Check
        `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
        (issue_warning_error_from_context): Add the `const' keyword to
        a char*.
        (parse_error_context): Likewise.  Also check `ANSI_PROTOTYPES'
        not `__STDC__' for whether to use ANSI-isms.
        * typeck.c (incomplete_type_error): Mark parameters `value' and
        `type' with ATTRIBUTE_UNUSED.
        (parse_signature_type): Use ISDIGIT, not isdigit.
        * verify.c (check_pending_block): Add the `const' keyword to a char*.
        (verify_jvm_instructions): Likewise.  Remove unused variables
        `field_name' and `default_val'.
        * zextract.c: Include config.h and system.h.  Remove redundant
        OS header includes.
        * zipfile.h: Prototype `read_zip_archive'.

From-SVN: r24835
1999-01-23 20:47:03 +00:00