Commit Graph

761 Commits

Author SHA1 Message Date
Richard Earnshaw
97876d6690 * lex.c (java_read_char): Check for EOF from getc first.
From-SVN: r39261
2001-01-25 10:35:09 +00:00
Alexandre Petit-Bianco
493d561d62 class.c (layout_class): Don't lay the superclass out if it's already being laid out.
2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (layout_class): Don't lay the superclass out if it's
	already being laid out.
	* jcf-parse.c (handle_innerclass_attribute): New function.
	(HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
	handle_innerclasses_attribute.
	(jcf_parse): Don't load an innerclasses if it's already being
	laid out.
	* jcf-write.c (append_innerclass_attribute_entry): Static
	`anonymous_name' and its initialization deleted. `ocii' and `ini'
	to be zero for anonymous classes.

2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
	necessary.
	* jcf-parse.c (set_source_filename): Use
	MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.

2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
	gets a unique asm name.

2001-01-23  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
	(HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
	if necessary.
	(HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
	* jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
	* parse.y (lookup_package_type_and_set_next): Deleted.
	(resolve_package): Removed unnecessary code.
	(find_applicable_accessible_methods_list): `finit$' can't be
 	inherited.
	* verify.c (pop_argument_types): Added missing prototype.

(http://gcc.gnu.org/ml/gcc-patches/2001-01/msg01812.html)

From-SVN: r39230
2001-01-24 00:08:36 -08:00
Bryce McKinlay
7c01b2b5a8 configure.in: Enable libgcj on several additional platforms.
* configure.in: Enable libgcj on several additional platforms.

In gcc/java:
	* config-lang.in: Disable java by default.

From-SVN: r39212
2001-01-23 22:17:31 +00:00
Tom Tromey
80261b56ed gcj.texi (Copying): New node.
* gcj.texi (Copying): New node.
	Added copyright information.

From-SVN: r39208
2001-01-23 20:09:17 +00:00
Per Bothner
a4796c8062 Various fixes to allow compiling a compressed .jar/.zip archive.
From-SVN: r39175
2001-01-21 13:50:37 -08:00
Per Bothner
b5c4fed92c Minor optimization of static ggc roots.
* jcf-parse.c (parse_roots):  New static field.
	(current_field, current_method, current_file_list):  Replace by macros
	naming fields of parse_roots.
	(init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
	* class.c (class_roots):  New static field.
	(registered_class, fields_ident, info_ident, class_list):
	New macros naming fields of parse_roots.
	(build_static_field_ref):  Don't register roots here.
	(layout_class):  Static field list replaced by macro class_list.
	(init_class_processing):  Call ggc_add_tree_root for 4 roots.
	Initialize fields_ident and info_ident here.

From-SVN: r39174
2001-01-21 13:24:30 -08:00
Per Bothner
3432b91b65 jcf-parse.c (ggc_mark_jcf): New function.
* jcf-parse.c (ggc_mark_jcf):  New function.
	(init_jcf_parse):  Register current_jcf as ggc root.

From-SVN: r39173
2001-01-21 13:18:04 -08:00
Per Bothner
2c36c7fd96 * lang.c (put_decl_node): Print method's name.
From-SVN: r39172
2001-01-21 12:42:13 -08:00
Per Bothner
9c0c88ac0d verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
* verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
	(verify_jvm_instructions):  Use it, for better error messages on loads.

From-SVN: r39171
2001-01-21 12:36:46 -08:00
Per Bothner
230cbd5f4f verify.c (merge_type_state): Stil may have to merge even if LABEL_VERIFIED (label).
* verify.c (merge_type_state):  Stil may have to merge even if
	LABEL_VERIFIED (label).

From-SVN: r39170
2001-01-21 12:26:37 -08:00
Per Bothner
e6b6db0dd8 parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL to a EXPR_WITH_FILE_LOCATION - that...
* parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
	to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.

From-SVN: r39169
2001-01-21 12:18:31 -08:00
Per Bothner
b57300bcff expr.c (pop_type_0): Only return object_ptr_type_node on mismatch if expeting an interface type.
* expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
	if expeting an interface type.  Refines Tom's change of 2000-09-12.

From-SVN: r39168
2001-01-21 11:08:10 -08:00
Per Bothner
ee08d4ccc8 gcj.texi (Input Options): Mention .java files.
2001-01-18  Per Bothner  <per@bothner.com>

	* gcj.texi (Input Options): Mention .java files.

From-SVN: r39123
2001-01-18 22:36:23 +00:00
Alexandre Petit-Bianco
b1117741f1 lang-options.h (-Wunsupported-jdk11): Removed.
2001-01-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * lang-options.h (-Wunsupported-jdk11): Removed.
        * lang.c (flag_not_overriding): Deleted.
        (flag_static_local_jdk1_1): Likewise.
        (lang_W_options): Removed "unsupported-jdk11" entry.
        * parse.y (java_check_methods): Removed dead code.

(http://gcc.gnu.org/ml/gcc-patches/2001-01/msg01479.html)

From-SVN: r39107
2001-01-17 19:07:01 -08:00
Tom Tromey
2dc7316849 Changes suggested by Per Bothner:
* gcj.texi (Input Options): Don't mention input files.
	(Code Generation): Updated --main information.
	(Invoking jcf-dump): Mention that --javap is incomplete.
	From Alexandre Petit-Bianco:
	(Warnings): Don't mention -Wunsupported-jdk11.
	My stuff:
	(Compatibility): Mention JDK 1.2-ness of libraries.
	(Resources): Mention resources used when writing gcj.

From-SVN: r39103
2001-01-18 00:20:52 +00:00
Tom Tromey
bc65b5ecf6 gcj.texi: New file.
* gcj.texi: New file.
	* Make-lang.in ($(srcdir)/java/gcj.info): New target.
	(java.info): Depend on gcj.info.
	(java/gcj.dvi): New target.
	(java.dvi): Depend on gcj.dvi.
	(java.install-info): Wrote.

From-SVN: r39101
2001-01-17 23:14:11 +00:00
Jeff Sturm
930f669025 expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after having called make_decl_rtl.
2001-01-16  Jeff Sturm  <jeff.sturm@appnet.com>

        * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
        having called make_decl_rtl.

(http://gcc.gnu.org/ml/gcc-patches/2001-01/msg01369.html)

From-SVN: r39079
2001-01-16 16:39:09 -08:00
Alexandre Petit-Bianco
dc08e60389 All files with updated copyright when applicable.
2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	All files with updated copyright when applicable.
	* Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
	* class.c (mangle_class_field): Function removed.
	(append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
	(utf8_cmp, cxx_keyword_p): Moved to lex.c.
	(build_class_ref): Call `java_mangle_class_field' instead of
	`mangle_class_field.'
	(build_dtable_decl): Rewritten to call `java_mangle_vtable.'
	(layout_class): Call `java_mangle_decl' instead of
	`mangle_static_field.'
	(cxx_keywords): Initialized static array moved to `lex.c.'
	(layout_class_method): Changed leading comment. Simplified to
	call `java_mangle_decl.' Local `ptr' moved in for loop body.
	* decl.c (lang_mark_tree): Mark field `package_list.'
	* java-tree.h (TYPE_PACKAGE_LIST): New macro.
	(struct lang_type): New field `package_list.'
	(unicode_mangling_length): Prototype removed.
	(append_gpp_mangled_name, append_gpp_mangled_classtype,
	emit_unicode_mangled_name): Likewise.
	(cxx_keyword_p): New prototype.
	(java_mangle_decl, java_mangle_class_field,
	java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
	* jcf-parse.c (jcf_parse_source): Constify `file' argument to
	`build_expr_wfl.'
	* jvgenmain.c (main_method_prefix): Global variable removed.
	(main_method_suffix): Likewise.
	(do_mangle_classname): New function.
	(main): Call it. Format changed to accomodate new mangling scheme.
	* lex.c: (utf8_cmp): Conditionally prototyped.
	(cxx_keywords): Moved from class.c, conditionally defined.
	(utf8_cmp, cxx_keyword_p): Likewise.
	* mangle.c (obstack.h, ggc.h): Included.
	(mangle_field_decl): New function.
	(mangle_method_decl, mangle_type, mangle_pointer_type,
	mangle_array_type, mangle_record_type,
	find_compression_pointer_match, find_compression_array_match,
	find_compression_record_match,
	find_compression_array_template_match, set_type_package_list,
	entry_match_pointer_p, emit_compression_string, init_mangling,
	finish_mangling, compression_table_add, mangle_member_name): Likewise.
	(mangle_obstack): New global.
	(MANGLE_RAW_STRING): New macro.
	(unicode_mangling_length): Turned static.
	(append_unicode_mangled_name): Renamed from
	`emit_unicode_mangled_name.'  Turned static. `mangle_obstack'
	replaces `obstack', removed from the parameter list.
	(append_gpp_mangled_name): Turned static. `mangle_obstack'
	replaces parameter `obstack', removed from the parameter list. Call
	`append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
	(append_gpp_mangled_classtype): Removed.
	(compression_table, compression_next): New static variables.
	* parse.y (temporary_obstack): Extern declaration removed.

(This is the new C++ ABI compatibility patch:
  http://gcc.gnu.org/ml/gcc-patches/2001-01/msg01225.html)

From-SVN: r39031
2001-01-15 00:01:22 -08:00
Per Bothner
984ad2c633 Various patches to emit better messages on verification errors.
From-SVN: r39019
2001-01-14 13:48:10 -08:00
Per Bothner
00b4575d1e parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is constant, return body without wrapper.
* parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
	constant, return body without wrapper.  (Improves constant folding.)
	* lex.c (build_wfl_node):  Clear TREE_TYPE from returned node.

From-SVN: r39017
2001-01-14 12:46:32 -08:00
Per Bothner
d9da31dd9a expr.c (expand_java_field_op): Assigning to a final field outside an initializer does not violate JVM spec...
* expr.c (expand_java_field_op):  Assigning to a final field outside
	an initializer does not violate JVM spec, so should be warning, not
	error.  (Sun's verifier does not complain - though MicroSoft's does.)

From-SVN: r39013
2001-01-14 09:37:09 -08:00
Joseph Myers
a67a383a7f g77spec.c (lang_specific_driver): Update copyright year to 2001.
f:
	* g77spec.c (lang_specific_driver): Update copyright year to 2001.

java:
	* gjavah.c (version), jcf-dump.c (version): Update copyright year
	to 2001.

From-SVN: r38951
2001-01-12 17:28:23 +00:00
Bryce McKinlay
7e1376a14c parse.y (resolve_expression_name): Permit instance variables from enclosing context in super constructor call.
* parse.y (resolve_expression_name): Permit instance variables from
	enclosing context in super constructor call.
	(resolve_qualified_expression_name): Permit enclosing class's
	qualified "this" in super constructor call.

From-SVN: r38892
2001-01-11 03:00:56 +00:00
Mark Mitchell
6c41818449 output.h (make_function_rtl): Remove prototype.
* output.h (make_function_rtl): Remove prototype.
	(make_decl_rtl): Likewise.
	* varasm.c (make_function_rtl): Remove.
	(make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather
	than from a third parameter.
	* tree.h (make_decl_rtl): Remove last parameter.
	* c-decl.c (builtin_function): Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	(start_function): Likewise.
	* except.c (call_get_eh_context): Likewise.
	* expr.c (emit_block_move): Likewise.
	(clear_storage): Likewise.
	* profile.c (output_func_start_profiler): Likewise.
	* toplev.c (rest_of_decl_compilation): Likewise.
	* objc/objc-act.c (create_builtin_decl): Likewise.
	(synth_module_prologue): Likewise.
	(generate_static_reference): Likewise.
	(build_selector_reference_decl): Likewise.
	(build_class_reference_decl): Likewise.
	(build_objc_string_decl): Likewise.
	(build_protocol_reference): Likewise.

	* class.c (finish_struct_1):  Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	* decl.c (builtin_function): Likewise.
	(build_cp_library_fn): Likewise.
	(check_initializer): Likewise.
	(make_rtl_for_nonlocal_decl): Likewise.
	(cp_finish_decl): Likewise.
	(start_function): Likewise.
	* decl2.c (finish_anon_union): Likewise.
	* friend.c (do_friend): Likewise.
	* init.c (build_java_class_ref): Likewise.
	* method.c (make_thunk): Likewise.
	* pt.c (tsubst_friend_function): Likewise.
	* semantics.c (expand_body): Likewise.

	* com.c (ffecom_init_zero_):  Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	(ffecom_lookup_label_): Likewise.
	(builtin_function): Likewise.
	(start_function): Likewise.

	* class.c (build_utf8_ref): Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	(build_class_ref): Likewise.
	(build_static_field_ref): Likewise.
	(get_dispatch_table): Likewise.
	(layout_class_method): Likewise.
	(emit_register_classes): Likewise.
	* constants.c (build_constant_data_ref): Likewise.
	* decl.c (builtin_function): Likewise.
	(create_primitive_vtable): Likewise.
	* expr.c (build_known_method_def): Likewise.
	(build_jni_stub): Likewise.
	(java_lang_expand_expr): Likewise.

From-SVN: r38884
2001-01-10 23:06:30 +00:00
Tom Tromey
0adc3d8a92 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
From-SVN: r38874
2001-01-10 19:13:10 +00:00
Alexandre Petit-Bianco
761491c8dc [multiple changes]
2001-01-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* java-tree.h (lang_printable_name_wls): New prototype.
	* lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
	rather than `current_class' to print type name. Don't prepend type
	names when printing constructor names.
	(lang_printable_name_wls): New function.
	* jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
	`build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
	* parse.y (patch_method_invocation): Message tuned for constructors.
	(not_accessible_p): Grant `private' access from within
	enclosing contexts.

2001-01-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (patch_binop): Compute missing type in error situations.

(http://gcc.gnu.org/ml/gcc-patches/2001-01/msg00752.html)

From-SVN: r38870
2001-01-10 09:05:43 -08:00
Neil Booth
ee811cfdfa c-lang.c (lang_hooks): Update.
* c-lang.c (lang_hooks): Update.
        (lang_decode_option): Remove.
        (lang_init_options): Rename c_init_options.
        * toplev.c (main): Use lang_hooks for lang_init_options
        and lang_decode_option.
        * toplev.h (lang_hooks): Add 2 new hooks.
        * tree.h: Remove lang_init_options and lang_decode_option.
        * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
        * cp/decl2.c: Similarly.
        * cp/lex.c (lang_init_options): Rename cxx_init_options.
        (lang_hooks): Update.
        * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
        for consistency.
        (lang_init_options): Rename ffe_init_options.
        (lang_hooks): Update.
        (lang_decode_option): Remove.
        * java/lang.c (lang_init_options): Rename java_init_options.
        (lang_decode_option): Rename java_decode_option.
        (lang_hooks): Update.
        * objc/objc-act.c (lang_init_options): Rename objc_init_options.
        (lang_decode_option): Rename objc_decode_option.
        (lang_hooks): Update.

From-SVN: r38856
2001-01-10 07:51:11 +00:00
Neil Booth
13c61421ff c-lang.c (lang_hooks): Update.
* c-lang.c (lang_hooks): Update.
        (lang_init): Rename c_init.
        (lang_finish): Remove.
        * toplev.c (compile_file): Use lang_hooks for lang_init ()
        and lang_finish ().
        * toplev.h (lang_hooks): Add init () and finish ().
        * tree.h (lang_init, lang_finish): Remove.
        * cp/tree.h (lang_init, lang_finish): Remove.
        * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
        * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
        lang_hooks): New.
        (lang_init, lang_finish): Remove.
        * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
        (lang_hooks): Update.
        * java/lang.c (lang_init): Rename java_init.
        (lang_finish): Remove.
        (lang_hooks): Update.
        * objc/objc-act.c (lang_init): Rename objc_init.
        (lang_finish): Remove.
        (lang_hoooks): Update.

From-SVN: r38828
2001-01-09 10:54:01 +00:00
Bryce McKinlay
5bb11b2e20 In gcc/java:
* class.c (make_class_data): Push initial value for "arrayclass".
	* decl.c (init_decl_processing): Add new class field "arrayclass".

In libjava:
	* java/lang/Class.h (_Jv_InitClass): Use __builtin_expect.
	(_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass.
	(_Jv_GetArrayClass): New inline function.
	(arrayclass): New field.
	* prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayClass. Don't use
	_Jv_GetArrayElementFromElementType.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_PrimClass constructor): Initialize "depth", "ancestors", and
	"idt" for completeness. Initialze "arrayclass" using _Jv_NewArrayClass.
	Set Modifier::ABSTRACT.
	* java/lang/natClassLoader.cc (_Jv_NewClass): Initialize "arrayclass".
	(_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. Now void.
	Now synchronized. Array classes are now referenced from
	elementClass->arrayclass. Don't use _Jv_FindClassInCache.
	Set array classes' accessibility flags correctly. Optimize so that
	all array classes share the same IDT.
	* java/lang/reflect/natArray.cc (newInstance): Use _Jv_GetArrayClass.
	* java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature): Ditto.
	* java/lang/natClass.cc (_getFields): Increment offset. Prevent fields
	in superclasses from overwriting classes own fields.
	(_Jv_IsAssignableFrom): Check for NULL source idt instead of calling
	Modifier::isAbstract().
	(null_idt): New static field.
	(_Jv_PrepareConstantTimeTables): Optimize case where class implements
	no interfaces.
	(_Jv_IndexOf): Made inline.
	* boehm.cc (_Jv_MarkObj): Mark "arrayclass" field.

From-SVN: r38808
2001-01-08 23:28:56 +00:00
Neil Booth
cd2a3ba227 toplev.c (main): Call the front-end specific post_options hook if one is given.
* toplev.c (main): Call the front-end specific post_options
        hook if one is given.
        * toplev.h (struct_lang_hooks, lang_hooks): New.
        * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
        for the C front end.
        * cp/decl2.c (cxx_post_options, lang_hooks): Implement
        lang_hooks for the C++ front end.
        * objc/objc-act.c (objc_post_options, lang_hooks): Implement
        lang_hooks for the ObjC front end.
        * f/com.c (lang_hooks): Hooks for the Fortran front end.
        * java/lang.c (lang_hooks): Hooks for the Java front end.

From-SVN: r38757
2001-01-07 03:34:28 +00:00
Bryce McKinlay
ac39dac023 From patha@softlab.ericsson.se:
* parse.y (switch_label): Use build, not build1, to construct
	DEFAULT_EXPR.

From-SVN: r38745
2001-01-06 05:06:02 +00:00
Phil Edwards
3b4e6a1644 lang-options.h: Bring comment in line with reality.
2001-01-05  Phil Edwards  <pme@sources.redhat.com>

	* cp/lang-options.h:  Bring comment in line with reality.
	* f/lang-options.h:  Likewise.
	* java/lang-options.h:  Likewise.
	* objc/lang-options.h:  Likewise.
	* ch/lang-options.h:  Likewise.
	* f/g77.texi:  And update the manual.

From-SVN: r38719
2001-01-05 19:12:21 +00:00
Neil Booth
a5a4ce3c3c cpp.texi: Update for -MP.
* cpp.texi: Update for -MP.  Clarify behaviour of -MT.
        * cppinit.c (initialize_dependency_output):  Update.
        (cpp_finish): Output dummy targets for -MP.
        (OPT_MP): New.
        (cpp_handle_option): Handle -MP.  Don't quote -MT options.
        * cpplib.h (struct cpp_options): Add deps_phony_targets.
        * gcc.c (cpp_options): Update to handle -MP.
        * mkdeps.c (deps_add_target, deps_add_default_target): Update
        to quote only the default target.
        (deps_phony_targets): Insert a preceding newline.  Rename from
        deps_dummy_targets for consistency.
        * mkdeps.h: Update
java:
        * lang.c (lang_decode_option): Change -MA to -MP.
        * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
        Update to new prototype; do quote targets.
        (jcf_dependency_write): Update.

From-SVN: r38707
2001-01-05 07:50:24 +00:00
Bryce McKinlay
d27fd99a03 Shorten primitive array allocation path:
* decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
        to create new primitive arrays.
        * expr.c (build_newarray): If generating native code, call
        soft_newarray_node with a reference to the primitive TYPE identifier
        instead of type_value.

From-SVN: r38482
2000-12-24 00:43:40 +00:00
Bryce McKinlay
6d003d5c8f re GNATS gcj/373: (interface inner classes are implicitly static)
Fix for PR gcj/373:
	* parse.y (create_class): Set ACC_STATIC if class is declared in an
	interface.

From-SVN: r38365
2000-12-18 21:23:02 +00:00
Bryce McKinlay
c1eacb709f Fix for PRs gcj/312 and gcj/253:
* parse.y (valid_ref_assignconv_cast_p): Load classes for source and
	dest if they arn't already.
	* class.c (layout_class): Call maybe_layout_super_class on
	superinterfaces also, but only if compiling from bytecode.

From-SVN: r38363
2000-12-18 21:15:52 +00:00
Tom Tromey
325de66c4c jcf-parse.c (jcf_parse_source): Set wfl_operator if not already set.
* jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
	set.

From-SVN: r38295
2000-12-16 01:51:51 +00:00
Andrew Haley
e35990c441 boehm.c (mark_reference_fields): Change test to correctly detect bitmap overflow.
2000-12-14  Andrew Haley  <aph@redhat.com>

        * boehm.c (mark_reference_fields): Change test to correctly detect
        bitmap overflow.

From-SVN: r38293
2000-12-15 17:35:03 +00:00
Andreas Jaeger
53714cda80 config-lang.in (lang_dirs): Added.
2000-12-15  Andreas Jaeger  <aj@suse.de>

	* config-lang.in (lang_dirs): Added.

From-SVN: r38280
2000-12-15 10:51:52 +01:00
Alexandre Petit-Bianco
1e0cdc1036 parse.y (end_artificial_method_body): Fixed undefined behavior.
2000-12-15  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (end_artificial_method_body): Fixed undefined behavior.
	Credits go to rth for finding it.

(http://gcc.gnu.org/ml/gcc/2000-12/msg00495.html)

From-SVN: r38278
2000-12-15 00:50:12 -08:00
Mike Stump
e9e42530cd * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
From-SVN: r38241
2000-12-14 04:28:50 +00:00
Tom Tromey
3f27e3f86a Make-lang.in (JAVA_LEX_C): Added chartables.h.
* Make-lang.in (JAVA_LEX_C): Added chartables.h.
	* lex.c (java_ignorable_control_p): Removed.
	(java_letter_or_digit_p): Removed.
	(java_start_char_p): New function.
	(java_read_char): Return `int', not `unicode_t'.  Changed
	callers.
	(java_read_unicode): Likewise.
	(java_read_unicode_collapsing_terminators): Likewise.
	(java_get_unicode): Likewise.
	(java_new_lexer): Initialize hit_eof.
	(java_parse_end_comment): Take `int' argument.
	(java_parse_doc_section): Likewise.
	(java_parse_escape_sequence): Don't allow backlash-newline.
	Return `int'.
	* lex.h (JAVA_DIGIT_P): Removed.
	(_JAVA_LETTER_OR_DIGIT_P): Removed.
	(_JAVA_IDENTIFIER_IGNORABLE): Removed.
	(JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
	(JAVA_PART_CHAR_P): New macro.
	(UEOF): Now -1.
	(JAVA_CHAR_ERROR): Now -2.
	(java_lexer): New field `hit_eof'.
	* chartables.h: New file.
	* gen-table.pl: new file.

From-SVN: r38237
2000-12-13 22:47:13 +00:00
Tom Tromey
568aac9cf7 parse.y (java_complete_lhs): Only allow compound assignment of reference type if type is String.
* parse.y (java_complete_lhs): Only allow compound assignment of
	reference type if type is String.

Co-Authored-By: Alexandre Petit-Bianco <apbianco@cygnus.com>

From-SVN: r38236
2000-12-13 22:36:24 +00:00
Alexandre Oliva
2b60b2cb39 configure.in: Simplify language enabling/disabling code.
* configure.in: Simplify language enabling/disabling code.
* configure: Rebuilt.
* ch/config-lang.in (target_libs): Set.
(build_by_default): Set to no.
* cp/config-lang.in (target_libs): Set.
* f/config-lang.in (target_libs): Set.
* java/config-lang.in (target_libs): Set.
* objc/config-lang.in (target_libs): Set.

From-SVN: r38207
2000-12-12 20:28:52 +00:00
Mo DeJong
8000caee88 jcf-io.c (find_class): Correct the logic that tests to see if a .java file is newer than its .class file.
2000-12-07  Mo DeJong  <mdejong@redhat.com>

	* jcf-io.c (find_class): Correct the logic that tests to see if a
	.java file is newer than its .class file. The compiler was
	incorrectly printing a warning when file mod times were equal.

(http://gcc.gnu.org/ml/gcc-patches/2000-12/msg00530.html)

From-SVN: r38177
2000-12-10 12:18:23 -08:00
Alexandre Petit-Bianco
f34ff6d61e Top level ChangeLog:
2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* libjava: Imported from /cvs/java.
	* libffi: Likewise.
	* Boehm-gc: Likewise.

libjava/ChangeLog:

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Makefile.am (data_DATA): libgcj.jar replaces libgcj.zip.
	(ZIP): Points at fastjar instead of zip.
	(libgcj_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
	(libgcj_la_LDFLAGS): Correctly point at libsupc++.
	(libgcjx_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
	(libgcjx_la_LDFLAGS): Correctly point at libsupc++.
	($(java_source_files:.java=.class):): libgcj.jar replaces libgcj.zip.
	($(x_java_source_files:.java=.class):): Likewise.
	(libgcj.jar:): Replaces libgcj.zip:, builds libgcj.jar and uses
	fastar's flags.
	(CLEANFILES): libgcj.jar replaces libgcj.zip.
	(java/lang/ClassLoader.h:): Depends on libgcj.jar.
	(gnu/gcj/runtime/FirstThread.h:, java/lang/Thread.h:,
	java/lang/String.h:, java/lang/reflect/Constructor.h:,
	java/lang/reflect/Field.h:, java/lang/reflect/Method.h:,
	gnu/gcj/runtime/VMClassLoader.h:,
	java/io/ObjectInputStream$$GetField.h:,
	java/io/ObjectOutputStream$$PutField.h:, header-check:): Likewise.
	(Makefile.in): Rebuilt.

gcc/java/ChangeLog:

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
	jcf-path.c: Likewise.

From-SVN: r38167
2000-12-09 21:32:49 -08:00
Anthony Green
6e5589e8ad zipfile.h (ZipDirectory): Declare size, uncompressed_size, filestart and filename_length as int values.
* zipfile.h (ZipDirectory): Declare size, uncompressed_size,
	filestart and filename_length as int values.

From-SVN: r38165
2000-12-10 03:53:33 +00:00
Zack Weinberg
f6bbde28c4 safe-ctype.h: New file.
include:
	* safe-ctype.h: New file.
libiberty:
	* safe-ctype.c: New file.
	* Makefile.in (CFILES): Add safe-ctype.c.
	(REQUIRED_OFILES): Add safe-ctype.o.

	* argv.c: Define ISBLANK and use it, not isspace.
	* basename.c, cplus-dem.c, fnmatch.c, pexecute.c, strtod.c,
	strtol.c, strtoul.c: Include safe-ctype.h, not ctype.h.  Use
	uppercase ctype macros.  Don't test ISUPPER(c)/ISLOWER(c)
	before calling TOLOWER(c)/TOUPPER(c).
gcc:
	* Makefile.in (HOST_RTL): Add safe-ctype.o.
	(safe-ctype.o): New rule.
	* system.h: Include safe-ctype.h, not ctype.h.  No need to
	wrap ctype macros.

	* cpphash.h: Zap IStable and related macros.  Define is_* in
	terms of safe-ctype.h macros.
	* cppinit.c: Delete the IStable and all related code.

	* tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
	is_space arrays.  Delete initialize_char_syntax.  Change all
	references to the above arrays to use macros instead.
	* tradcpp.h: Define is_idchar, is_idstart, is_space, and
	is_nvspace in terms of safe_ctype.h's macros.
	* tradcif.y: is_idchar, is_idstart are macros not arrays.

	* config/i370/i370.c, config/winnt/dirent.c,
	config/winnt/fixinc-nt.c, config/winnt/ld.c:
	Use uppercase ctype macros.  If we included ctype.h,
	include safe-ctype.h instead.

	* fixinc/fixfixes.c: Use uppercase ctype macros.  Don't test
	ISLOWER(c) before calling TOUPPER(c).
	* fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
	* fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h.  No need to
	wrap ctype macros.  Don't test ISUPPER(x) before calling TOLOWER(x).
gcc/ch:
	* lex.c: Don't bother checking whether ISUPPER(c) before
	calling TOLOWER(c).  Don't bother checking whether isascii(c)
	before testing ISSPACE(c); ISSPACE(c) includes '\n'.
gcc/f:
	* Make-lang.in: Link f/fini with safe-ctype.o.
	* bad.c: Don't test ISUPPER(c) || ISLOWER(c) before calling TOUPPER(c).
	* com.c: Use TOUPPER, not ffesrc_toupper.
	* fini.c: Don't test ISALPHA(c) before calling TOUPPER(c)/TOLOWER(c).
	* intrin.c: Don't test IN_CTYPE_DOMAIN(c).
	* src.c: Delete ffesrc_toupper_ and ffesrc_tolower_ and their
	initializing code; use TOUPPER and TOLOWER instead of
	ffesrc_toupper and ffesrc_tolower.
	* src.h: Don't declare ffesrc_toupper_ or ffesrc_tolower_.
	Don't define ffesrc_toupper or ffesrc_tolower.
gcc/java:
	* jvgenmain.c: Use ISPRINT not isascii.

From-SVN: r38124
2000-12-08 03:00:26 +00:00
Alexandre Petit-Bianco
46142b263c parse.y (end_artificial_method_body): Fixed typo.
2000-12-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (end_artificial_method_body): Fixed typo.

(http://gcc.gnu.org/ml/gcc-patches/2000-12/msg00320.html)

From-SVN: r38071
2000-12-06 12:02:02 -08:00
Alexandre Petit-Bianco
c7303e411e [multiple changes]
2000-10-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * jcf-write.c (OP1): Update `last_bc'.
        (struct jcf_block): Fixed indentation and typo in comments.  New
        field `last_bc'.
        (generate_bytecode_insns): Insert `nop' if `jsr' immediately
        follows `monitorenter'.
        * parse.y (patch_synchronized_statement): New local `tmp'. Call
        `patch_string'.
        Fixes gcj/232.

2000-10-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * check-init.c (check_init): Fixed leading comment. Use
        LOCAL_FINAL_P.
        * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
        (give_name_to_locals): Likewise.
        (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
        fields in lang_decl_var.
        * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
        DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
        (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
        (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
        DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
        (LOCAL_FINAL): Rewritten.
        (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
        MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
        (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
        `init_final' fields.
        (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
        `final_uid', `final_liic', `final_ierr' and `local_final' fields.
        (TYPE_HAS_FINAL_VARIABLE): New macro.
        (struct lang_type): Added `afv' field.
        * parse.y (check_static_final_variable_assignment_flag): New function.
        (reset_static_final_variable_assignment_flag): Likewise.
        (check_final_variable_local_assignment_flag): Likewise.
        (reset_final_variable_local_assignment_flag): Likewise.
        (check_final_variable_indirect_assignment): Likewise.
        (check_final_variable_global_assignment_flag): Likewise.
        (add_inner_class_fields): Use LOCAL_FINAL_P.
        (register_fields): Handle local finals and final variables.
        (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
        (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
        (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
        on local finals.
        (java_complete_expand_methods): Loop to set
        TYPE_HAS_FINAL_VARIABLE. Call
        `reset_final_variable_local_assignment_flag' and
        `check_final_variable_local_assignment_flag' accordingly before
        and after constructor expansion. Call
        `reset_static_final_variable_assignment_flag'
        before expanding <clinit> and after call
        `check_static_final_variable_assignment_flag' if the
        current_class isn't an interface. After all methods have been
        expanded, call `check_final_variable_global_assignment_flag' and
        `check_static_final_variable_assignment_flag' if the current class
        is an interface.
        (maybe_yank_clinit): Fixed typo in comment.
        (build_outer_field_access_methods): Removed old sanity check. Use
        FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
        Don't create access methods for finals.
        (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
        (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
        existing DECL_INIT has been processed.
        (java_complete_lhs): Likewise.
        (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
        Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
        logic.
        (patch_assignment): Use LOCAL_FINAL_P.
        (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
        DECL_INITIAL is nullified.
        Fixes gcj/163.

2000-10-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (pop_current_osb): New function.
        (array_type:): Use `dims:', changed actions
        accordingly. Suggested by Anthony Green.
        (array_creation_expression:): Used pop_current_osb.
        (cast_expression:): Likewise.
        (search_applicable_method_list): Fixed indentation.

2000-10-08  Anthony Green  <green@redhat.com>

        * parse.y (array_type_literal): Remove production.
        (type_literals): Refer to array_type, not array_type_literal.

(http://gcc.gnu.org/ml/gcc-patches/2000-12/msg00317.html)

From-SVN: r38070
2000-12-06 10:55:42 -08:00