summaryrefslogtreecommitdiffstats
path: root/gcc/java/check-init.c
Commit message (Collapse)AuthorAgeFilesLines
...
* 2000-02-14 Andrew Haley <aph@cygnus.com>aph2000-03-141-0/+15
| | | | | | | | * check-init.c (check_init): Add new cases for unary and binary tree nodes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32543 138bc75d-0d04-0410-961f-82ee72b054a4
* Added Java 1.1 language features.apbianco2000-03-141-8/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32517 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>apbianco2000-03-071-1/+7
| | | | | | | | | | | | | | | * java-tree.h (IS_INIT_CHECKED): New flag. * check-init.c (check_init): Test and set IS_INIT_CHECKED. * parse.y (patch_string): Call force_evaluation_order on the completed string concatenation tree. * expr.c (force_evaluation_order): Call force_evaluation_order on function's arguments too. (This fixes the Java PR #108: http://sourceware.cygnus.com/ml/java-prs/1999-q4/msg00174.html) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32391 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-02-25 Anthony Green <green@cygnus.com>green2000-02-261-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | * expr.c (build_class_init): Mark the decl to be ignored by check_init. * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c * check-init.c: Move DECL_BIT_INDEX to java-tree.h * class.c (init_test_hash_newfunc): New function. (decl_hash): New function. (decl_compare): New function. * decl.c (emit_init_test_initialization): New function. (complete_start_java_method): Traverse the init test hashtable, calling emit_init_test_initialization. (always_initialize_class_p): Define. * expr.c (build_class_init): Use initialization tests when emitting class initialization code. (always_initialize_class_p): Declare. * jcf-parse.c (parse_class_file): Set always_initialize_class_p to 1. * java-tree.h: Include hash.h. (DECL_FUNCTION_INIT_TEST_TABLE): Define. (struct lang_decl): Add init_test_table field. (init_test_hash_entry): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32166 138bc75d-0d04-0410-961f-82ee72b054a4
* * buffer.h: PROTO -> PARAMS.ghazi2000-01-211-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * check-init.c: Likewise. * class.c: Likewise. * constants.c: Likewise. * convert.h: Likewise. * decl.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * gjavah.c: Likewise. * java-except.h: Likewise. * java-tree.h: Likewise. * jcf-depend.c: Likewise. * jcf-dump.c: Likewise. * jcf-parse.c: Likewise. * jcf-path.c: Likewise. * jcf-reader.c: Likewise. * jcf-write.c: Likewise. * jcf.h: Likewise. * jv-scan.c: Likewise. * jvgenmain.c: Likewise. * jvspec.c: Likewise. * lang.c: Likewise. * lex.c: Likewise. * lex.h: Likewise. * parse-scan.y: Likewise. * parse.h: Likewise. * parse.y: Likewise. * typeck.c: Likewise. * verify.c: Likewise. * xref.c: Likewise. * xref.h: Likewise. * zextract.c: Likewise. * zipfile.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31550 138bc75d-0d04-0410-961f-82ee72b054a4
* 1999-12-15 Anthony Green <green@cygnus.com>green1999-12-121-1/+2
| | | | | | | | * check-init.c (check_init): Take into account both types of `throw's when checking for uninitialized variables. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30879 138bc75d-0d04-0410-961f-82ee72b054a4
* * check-init.c: Fix typo in comment.law1999-10-311-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30281 138bc75d-0d04-0410-961f-82ee72b054a4
* * check-init.c (check_bool2_init, done_alternative): Add staticghazi1999-08-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prototypes. * class.c (add_interface_do, maybe_layout_super_class): Likewise. (add_method, build_utf8_ref, build_class_ref, append_gpp_mangled_type, layout_class_method): Constify a char*. * decl.c (push_promoted_type, make_binding_level): Add static prototypes. (push_promoted_type, pushdecl): Constify a char*. * except.c (find_handler_in_range, link_handler, check_start_handlers): Add static prototypes. * expr.c (process_jvm_instruction): Constify a char*. * gjavah.c (main): Constify a char*. * java-tree.h (verify_jvm_instructions, process_jvm_instruction): Constify a char*. * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add static prototypes. (add_entry, jcf_dependency_set_target, jcf_dependency_add_target, munge, print_ents): Constify a char*. * jcf-dump.c (disassemble_method): Constify a char*. (print_constant_pool, print_exception_table): Add static prototypes. (print_constant, print_exception_table, main, disassemble_method): Constify a char*. * jcf-io.c (find_classfile, find_class): Likewise. * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise. (set_source_filename, predefined_filename_p): Add static prototypes. (set_source_filename, get_constant, get_class_constant, find_in_current_zip): Constify a char*. * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add static prototypes. (add_entry, add_path, jcf_path_classpath_arg, jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*. * jcf-reader.c (get_attribute, jcf_parse_preamble, jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields, jcf_parse_one_method, jcf_parse_methods, jcf_parse_final_attributes): Add static prototypes. (get_attribute): Constify a char*. * jcf.h (find_class, find_classfile, jcf_dependency_set_target, jcf_dependency_add_target, jcf_path_classpath_arg, jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*. * jv-scan.c (main): Constify a char*. (gcc_obstack_init): Add prototype arguments. * jvgenmain.c (gcc_obstack_init): Likewise. (main): Constify a char*. * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add static prototypes. (put_decl_string, lang_print_error): Constify a char*. (lang_init): Remove redundant extern prototype. * mangle.c (emit_unicode_mangled_name): Constify a char*. * typeck.c (convert_ieee_real_to_integer, parse_signature_type): Add static prototypes. (get_type_from_signature): Constify a char*. * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ): Add static prototypes. (start_pc_cmp): Prefer PTR over GENERIC_PTR. (verify_jvm_instructions): Constify a char*. * xref.c (xref_flag_value): Likewise. * xref.h (xref_flag_value): Likewise. * zextract.c (makeword, makelong): Add static prototypes. (makeword, makelong): Constify a uch*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28648 138bc75d-0d04-0410-961f-82ee72b054a4
* Thu Jul 22 12:41:12 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>apbianco1999-07-221-0/+1
| | | | | | | | | * check-init.c (check_init): Handle MAX_EXPR. (Fix to net PR #14.) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28220 138bc75d-0d04-0410-961f-82ee72b054a4
* Sat Jul 3 22:26:32 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>apbianco1999-07-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27998 138bc75d-0d04-0410-961f-82ee72b054a4
* Fri May 14 12:31:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>apbianco1999-05-141-1/+2
| | | | | | | | | | | * xref.c (xref_set_current_fp): New function, defined. * xref.h (xref_set_current_fp): New function, prototyped. Fri May 14 11:57:54 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> * check-init.c (check_init): Take into account that LABELED_BLOCK_STMT can be empty. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26935 138bc75d-0d04-0410-961f-82ee72b054a4
* Thu May 13 13:23:38 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>apbianco1999-05-131-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26926 138bc75d-0d04-0410-961f-82ee72b054a4
* Fri Apr 30 17:54:40 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>apbianco1999-05-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26758 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)ghazi1999-03-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $(srcdir)/../system.h and $(JAVA_TREE_H). (jcf-io.o): Depend on $(JAVA_TREE_H). (mangle.o): Likewise. * check-init.c (check_cond_init): Add static prototype. * class.c (build_java_method_type, hashUtf8String, make_field_value, get_dispatch_vector, get_dispatch_table, append_gpp_mangled_type, mangle_static_field): Likewise. (strLengthUtf8): Hide unused definition. (hashUtf8String): Const-ify. (make_field_value): Un-ANSI-fy. * constants.c: Move inclusion of jcf.h above java-tree.h. (set_constant_entry, find_class_or_string_constant, find_name_and_type_constant, get_tag_node, build_constant_data_ref): Add static prototype. * decl.c (push_jvm_slot, builtin_function, lookup_name_current_level): Likewise. (builtin_function): Const-ify. * except.c (expand_start_java_handler, expand_end_java_handler): Add static prototype. * expr.c (flush_quick_stack, push_value, pop_value, java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr, build_java_ret, expand_java_multianewarray, expand_java_arraystore, expand_java_arrayload, expand_java_array_length, build_java_monitor, expand_java_pushc, expand_java_return, expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label, expand_compare, expand_test, expand_cond, expand_java_goto, expand_java_call, expand_java_ret, pop_arguments, expand_invoke, expand_java_field_op, java_push_constant_from_pool): Likewise. (decode_newarray_type, expand_iinc): Un-ANSI-fy. (build_java_arraynull_check): Mark parameters `node' and `type' with ATTRIBUTE_UNUSED. (note_label): Likewise for parameter `current_pc'. (expand_java_call, expand_java_ret): Hide unused definition. * java-tree.h (make_class, build_constants_constructor, java_set_exception_lang_code, pop_labeled_block, emit_handlers, init_outgoing_cpool, register_class, emit_register_classes, java_layout_seen_class_methods): Prototype. (unicode_mangling_length): Const-ify. (append_gpp_mangled_name, append_gpp_mangled_classtype, emit_unicode_mangled_name, format_int, format_uint, jcf_trim_old_input, jcf_print_utf8, jcf_print_char, jcf_print_utf8_replace, open_class): Prototype. * jcf-dump.c: Include "config.h", not <config.h>. Don't include <stdio.h>. Include tree.h/java-tree.h. (utf8_equal_string usage, process_class): Add static prototype. (open_class): Don't prototype this here. (utf8_equal_string): Match arguments to format specifiers. (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH, TABLE_SWITCH, disassemble_method): Likewise. * jcf-io.c: Include tree.h/java-tree.h. (open_class, find_classfile, jcf_print_utf8, jcf_print_utf8_replace): Const-ify. * jcf-parse.c (parse_zip_file_entries, process_zip_dir, parse_class_file): Add static prototype. (find_in_current_zip): Match definition to existing static prototype. * jcf-write.c: Include jcf.h before tree.h/java-tree.h. (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label, finish_jcf_block, define_jcf_label, get_jcf_label_here, put_linenumber, localvar_alloc, localvar_free, get_access_flags, write_chunks, adjust_typed_op, generate_bytecode_conditional, generate_bytecode_return, perform_relocations, init_jcf_state, init_jcf_method, release_jcf_state, generate_classfile): Add static prototype. (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED. (make_class_file_name): Const-ify. * jcf.h (find_classfile): Const-ify. * jv-scan.c (reset_report): Remove prototype. * jvgenmain.c: Include jcf.h/tree.h/java-tree.h. (error): Rewrite to allow varargs. * lang.c (lang_f_options): Const-ify. * lex.c (java_parse_escape_sequence): Add static prototype. (java_allocate_new_line): Match definition to existing static prototype. * mangle.c Include tree.h/java-tree.h. (unicode_mangling_length, emit_unicode_mangled_name, append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify. * parse.h (jdep_code): Remove trailing comma in enumeration. (java_get_line_col): Move prototype outside of !JC1_LITE test. (reset_report): Add prototype. * verify.c (push_pending_label, merge_types): Add static prototypes. * zipfile.h (opendir_in_zip, open_in_zip): Prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25878 138bc75d-0d04-0410-961f-82ee72b054a4
* bothner1999-02-261-1/+1
| | | | | | | * check-init.c (check_init): COPYN takes word count, not bit count. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25470 138bc75d-0d04-0410-961f-82ee72b054a4
* (bothner1999-02-191-6/+10
| | | | | | | Use new TRY_FINALLY_EXPR tree node. See ChangeLog. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25312 138bc75d-0d04-0410-961f-82ee72b054a4
* * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.rth1999-01-291-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24909 138bc75d-0d04-0410-961f-82ee72b054a4
* bothner1999-01-281-2/+8
| | | | | | | | | * check-init.c (check_bool2_init, check_bool_init, check_init): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR. * jcf-write.c (generate_bytecode_insns): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24900 138bc75d-0d04-0410-961f-82ee72b054a4
* @bothner1999-01-081-5/+10
| | | | | | | | * check-init.c (check_init): If compiling to native, we don't see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24575 138bc75d-0d04-0410-961f-82ee72b054a4
* ibothner1999-01-061-7/+6
| | | | | | | Fixed some stupid typos that managed to get checked in. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24543 138bc75d-0d04-0410-961f-82ee72b054a4
* bothner1999-01-061-0/+699
* check-init.c: New file. Checks for definite assignment. Various minor other changes; see ChangeLog. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24522 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud