Commit Graph

19496 Commits

Author SHA1 Message Date
Mark Mitchell 7ddedda4aa cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses.
* cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses.
	(TYPE_BINFO): Likewise.
	(IS_AGGR_TYPE): Tweak.
	(SET_IS_AGGR_TYPE): New macro.
	(CLASS_TYPE_P): Tweak.
	(lang_type): Group mark bitfields together.  Remove linenum.
	(CLASSTYPE_SOURCE_LINE): Remove macro.
	(CLASSTYPE_MARKED_N): New macro.
	(SET_CLASSTYPE_MARKED_N): Likewise.
	(CLEAR_CLASSTYPE_MARKED_N): Likewise.
	(CLASS_TYPE_MARKED_*): Use them.
	(SET_CLASSTYPE_MARKED_*): Likewise.
	(CLEAR_CLASSTYPE_MARKED_*): Likewise.
	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
	(TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well.
	(TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE.
	* class.c (class_cache_obstack): New variable.
	(class_cache_firstobj): Likewise.
	(finish_struct): Don't set CLASSTYPE_SOURCE_LINE.
	(pushclass): Free the cache, when appropriate.
	(popclass): Tidy.
	(maybe_push_cache_obstack): Use class_cache_obstack.
	* decl.c (include hash.h).
	(typename_hash): New function.
	(typename_compare): Likewise.
	(build_typename_type): Check the hash table to avoid creating
	duplicates.
	(build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE.
	(grokdeclarator): Use CLASS_TYPE_P.
	(xref_basetypes): Likewise.
	(start_function): Likewise.  Don't put current_class_ref on the
	permanent obstack.
	* error.c (dump_type_real): Use	TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO
	and TYPE_TI_ARGS.
	* lex.c (note_got_semicolon): Use CLASS_TYPE_P.
	(make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated
	fields for types other than class types.  Do clear TYPE_ALIAS_SET
	for types other than class types, though.
	* method.c (build_overload_identifier): Use CLASS_TYPE_P and
	TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
	* pt.c (process_template_parm): Don't set
	CLASSTYPE_GOT_SEMICOLON.
	(lookup_template_class) Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
	Coerce arguments on the momentary obstack.
	(for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
	(instantiate_class_template): Calculate template arguments on the
	momentary obstack.  Tidy.
	(tsubst_template_arg_vector): Use make_temp_vec.
	(tsubst_aggr_type): Put template arguments on the momentary
	obstack.
	(tsubst_decl): Likewise.
	(tsubst): Copy the array bounds index to the permanent obstack
	before building index types.  Use new macros.
	(unify): Use new macros.
	(do_type_instantiation): Likewise.
	* search.c (lookup_fnfields_1): Use new macros.
	(dfs_pushdecls): Build envelopes on the cache obstack.
	(dfs_compress_decls): Use new macros.
	(push_class_decls): Build on the cache obstack.
	* semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON.
	* sign.c (build_signature_pointer_or_reference_type): Use
	SET_IS_AGGR_TYPE.
	* tree.c (make_binfo): Check CLASS_TYPE_P.
	(copy_template_template_parm): Adjust.
	(make_temp_vec): Use push_expresion_obstack.
	* typeck.c (complete_type): Use new macros.
	(comptypes): Likewise.

From-SVN: r23686
1998-11-17 12:51:20 +00:00
Jason Merrill 990ece87bd update
From-SVN: r23685
1998-11-17 07:41:47 -05:00
Jason Merrill 0ecfe0b46f pt.c (tsubst): Add diagnostics for invalid array, reference and pointer to member types.
* pt.c (tsubst): Add diagnostics for invalid array, reference
	and pointer to member types.

From-SVN: r23684
1998-11-17 07:36:00 -05:00
Mark Mitchell a87ec9e655 hash.h (hash_table_key): New type.
* hash.h (hash_table_key): New type.
	(hash_entry): Change `string' field to generic `key'.
	(hash_table): Add `comp' and `hash' functions.
	(hash_table_init): Take them as input.
	(hash_table_init_n): Likewise.
	(hash_lookup): Modify for generic keys.
	(hash_newfunc): Likewise.
	(hash_traverse): Likewise.
	(string_hash): New function.
	(string_compare): Likewise.
	(string_copy): Likewise.
	* hash.c (hash_table_init_n): Modify for generic keys.
	(hash_table_init): Likewise.
	(hash_lookup): Likewise.
	(hash_newfunc): Likewise.
	(hash_traverse): Likewise.
	(string_hash): Split out from hash_lookup.
	(string_compare): New function.
	(string_copy): Split out from hash_lookup.
	* tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
	tables.
	(symbol_hash_lookup): Likewise.
	(file_hash_newfunc): Likewise.
	(file_hash_lookup): Likewise.
	(demangled_hash_newfunc): Likewise.
	(demangled_hash_lookup): Likewise.
	(tlink_int): Likewise.
	(read_repo_file): Likewise.
	(recompile_files): Likewise.
	(demangle_new_symbols): Likewise.
	(scan_linker_output): Likewise.

From-SVN: r23683
1998-11-17 11:50:24 +00:00
J"orn Rennecke e398aa8062 * flow.c (insn_dead_p): New argument NOTES. Changed all callers.
From-SVN: r23680
1998-11-17 09:14:33 +00:00
Jeff Law bcd91ba753 Daily bump.
From-SVN: r23679
1998-11-16 17:45:33 -07:00
Jason Merrill 6a8f78d52c typeck2.c (my_friendly_abort): Don't fatal twice in a row.
* typeck2.c (my_friendly_abort): Don't fatal twice in a row.
	* typeck.c (c_expand_start_case): Use build_expr_type_conversion.
	Simplify.
Fixes Sec6/4_2/G06164.gr
	* parse.y (structsp): Fix cut-and-paste error.
Fixes Sec6/4_2/C06166.cm
	* init.c (build_new): Complain about non-integral size.
Fixes Sec5/3_4/E05276.C
	* parse.y (unary_expr): Complain about defining types in sizeof.
Fixes Sec5/3_3/S05178.C
	* typeck.c (expr_sizeof): Complain about sizeof an overloaded fn.
Fixes Sec5/3_3/S05161.C
	* rtti.c (build_x_typeid): Complain about typeid without
	including <typeinfo>.
	(get_typeid): Likewise.  Complain about typeid of incomplete type.
	(get_tinfo_fn_dynamic): Likewise.
	(get_typeid_1): Not static anymore.
	* except.c (build_eh_type_type): Use get_typeid_1.
Fixes Sec5/2_8/C05517.cm
	* rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to
	ambiguous or private bases.  Fix warning for reference cast.
Fixes Sec5/2_7/C05516.cm

From-SVN: r23678
1998-11-16 15:45:16 -05:00
David Edelsohn efc97ef076 rs6000.c (output_mi_thunk): Improve test for local branch.
* rs6000.c (output_mi_thunk): Improve test for local branch.
	* rs6000.c (output_mi_thunk): Correct test for aggregate values.

From-SVN: r23676
1998-11-16 10:00:10 -05:00
J"orn Rennecke dfe96118e5 reload1.c (reload_reg_free_before_p): Delete.
* reload1.c (reload_reg_free_before_p): Delete.
	Changed all callers to use reload_reg_free_for_value_p instead.
	(reload_reg_free_for_value_p): Handle more reload types.
	A RELOAD_FOR_INPUT doesn't conflict with its
	RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
	Add special case for OUT == const0_rtx.
	Added ignore_address_reloads argument.  Changed all callers.

From-SVN: r23675
1998-11-16 13:04:01 +00:00
Mark Mitchell fbf1c34bfa cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro.
* cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro.
	* decl.c (duplicate_decls): Remove special-case code to deal with
	template friends, and just do the obvious thing.
	* pt.c (register_specialization): Tweak for clarity, and also to
	clear DECL_INITIAL for an instantiation before it is merged with a
	specialization.
	(check_explicit_specialization): Fix indentation.
	(tsubst_friend_function): Handle both definitions in friend
	declaration and outside friend declarations.
	(tsubst_decl): Don't clear DECL_INITIAL for an instantiation.
	(regenerate_decl_from_template): Tweak accordingly.
	(instantiate_decl): Likewise.

From-SVN: r23674
1998-11-16 08:34:38 +00:00
Jason Merrill 848b92e1cc decl.c (cplus_expand_expr_stmt): Promote warning about naked member function reference to error.
* decl.c (cplus_expand_expr_stmt): Promote warning about naked
	member function reference to error.
	* cvt.c (ocp_convert): Complain about converting an overloaded
	function to void.
	* init.c (build_offset_ref): Just return a lone static member
	function.
	* decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs,
	not internal ones.
	* typeck.c (build_binary_op_nodefault): Improve error handling.
	* decl.c (grokfndecl): Complain about making 'main' a template.
	* typeck.c (string_conv_p): Don't convert from wchar_t[] to char*.
	* call.c (build_method_call): Handle a BIT_NOT_EXPR around a
	TYPE_DECL in a template.
	* typeck2.c (my_friendly_abort): Add URL in the other case, too.

From-SVN: r23673
1998-11-16 00:05:20 -05:00
Jason Merrill 1f288b3fa1 toplev.c (compile_file): Don't pedwarn about undefined static functions just because we passed -Wunused.
* toplev.c (compile_file): Don't pedwarn about undefined static
	functions just because we passed -Wunused.

From-SVN: r23672
1998-11-15 21:25:57 -05:00
Jeff Law 2c736c2fd5 Daily bump.
From-SVN: r23671
1998-11-15 17:45:03 -07:00
J"orn Rennecke de0dd9345e function.c (purge_addressof_1): Unshare rtl created by store_bit_field.
* function.c (purge_addressof_1): Unshare rtl created by
	store_bit_field.

From-SVN: r23670
1998-11-15 20:43:19 +00:00
J"orn Rennecke 8d1d76c1e3 regmove.c (regmove_optimize): Don't do anything but optimize_reg_copy[123] when flag_regmove is not set.
* regmove.c (regmove_optimize): Don't do anything but
	optimize_reg_copy[123] when flag_regmove is not set.

From-SVN: r23669
1998-11-15 20:24:19 +00:00
Jason Merrill 5524676df8 decl.c (struct cp_function): Add named_label_uses.
* decl.c (struct cp_function): Add named_label_uses.
	(push_cp_function_context): Save it.
	(pop_cp_function_context): Restore it.
	(define_label): Also complain about jumping into the scope of
	non-POD objects that don't have constructors.
	* tree.c (pod_type_p): New fn.
Fixes g++.other/init9.C
	* pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner.
	* rtti.c (synthesize_tinfo_fn): Call import_export_decl here.
	(get_tinfo_fn): Not here.
	* repo.c (repo_get_id): Abort if we get called for an incomplete
	type.
Fixes g++.pt/instantiate4.C

From-SVN: r23667
1998-11-15 14:24:43 -05:00
Alexandre Oliva 233363cbb1 throw2.C: New test.
* g++.old-deja/g++.eh/throw2.C: New test.  CV-qualifiers are not
 	properly discarded.

From-SVN: r23666
1998-11-15 19:00:45 +00:00
Per Bothner 411efd21c5 jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
* jvgenmain.c:  Need to #include "gansidecl.h" (to get PROTO).
	* jcf-write.c (perform_relocations):  Move check out one loop.

From-SVN: r23665
1998-11-15 09:16:06 -08:00
Per Bothner 3865d50892 jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
8
	* jvgenmain.c:  Need to #include "gansidecl.h" (to get PROTO).
	* jcf-write.c (perform_relocations):  Move check out one loop.

From-SVN: r23664
1998-11-15 09:16:05 -08:00
Anthony Green dd16be2aac Fix typo
From-SVN: r23663
1998-11-15 15:12:48 +00:00
Anthony Green 8773d9d5ae Make-lang.in: Fix reference to srcdir.
* Make-lang.in: Fix reference to srcdir.
	* jv-scan.c: Add missing xmalloc prototype.
	* jvgenmain.c: Ditto.

From-SVN: r23662
1998-11-15 15:11:55 +00:00
Per Bothner 9bbc7d9f4c decl.c (error_mark_node): New global.
�
	* decl.c (error_mark_node), java-tree.h:  New global.
	* parse.y:  Use empty_stmt_node instead of size_zero_node.
	(build_if_else_statement):  If missing else, use empty_stmt_node.
	* parse.y (not_initialized_as_it_should_p):  Removed, with its callers.
	(java_complete_expand_method):  Complain if return is missing.
	(java_check_regular_methods):  Comment out incorrect error check.
	(not_accessible_p):  Fix incorrect handling of protected methods.
	(patch_method_invocation):  Pass correct context to not_accessible_p.
	(find_applicable_accessible_methods_list):  Likewise.
	(qualify_ambiguous_name):  If ARRAY_REF, it's an expression name.
	(java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR, set
	TREE_TYPE (to void_type_node);  otherwise expand_expr crashes.
	(patch_if_else_statement):  Fix setting of CAN_COMPLETE_NORMALLY.
	* jcf-write.c (CHECK_OP, CHECK_PUT):  Add some error checking.
	(push_int_const):  Remove reundant NOTE_PUSH.
	(generate_bytecode_insns - case STRING_CST):  Do NOTE_PUSH.
	(- case SWITCH_EXPR):  Fix code generation bug.
	(- case PREDECREMENT_EXPR etc):  Remove redundant NOTE_PUSH.
	(generate_classfile):  More robust for abstract methods.

From-SVN: r23661
1998-11-15 06:37:52 -08:00
Anthony Green 175135a659 Makefile.in: jv-scan and jvgenmain all require libiberty.
* Makefile.in: jv-scan and jvgenmain all require libiberty.
	* Make-lang.in: Ditto.
	* jv-scan.c: Remove xmalloc and xstrdup definitions.
	* jvgenmain: Ditto.

From-SVN: r23660
1998-11-15 14:28:10 +00:00
Per Bothner 0ef3892866 jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
8
	* jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE):  New macro.
	* jcf-io.c (find_class):  Simpler/cleaner structure fixes a bug.

From-SVN: r23659
1998-11-15 06:12:42 -08:00
Jeff Law 46689c0ba4 Daily bump.
From-SVN: r23658
1998-11-14 17:45:02 -07:00
Per Bothner a2f44beb94 Allow uses of interface types to verify.
Allow uses of interface types to verify.  This is not really
	type-safe, but it matches what Sun does, and is OK as long as
	there are appropriate run-time checks.
	* verify.c (merge_types):  If merging two interface types,
	just set the result to java.lang.Object.
	* expr.c (pop_type):  Any interface is matches by java.lang.Object.

From-SVN: r23657
1998-11-14 09:22:23 -08:00
Per Bothner 46cf461c83 Allow uses of interface types to verify.
�
	Allow uses of interface types to verify.  This is not really
	type-safe, but it matches what Sun does, and is OK as long as
	there are appropriate run-time checks.
	* verify.c (merge_types):  If merging two interface types,
	just set the result to java.lang.Object.
	* expr.c (pop_type):  Any interface is matches by java.lang.Object.

From-SVN: r23656
1998-11-14 09:22:22 -08:00
Richard Henderson bd8dc16507 alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode value in paradoxical SImode result...
* alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
        value in paradoxical SImode result, rather than truncating midpoint.

From-SVN: r23655
1998-11-14 07:07:03 -08:00
Jeff Law 9d1a7ce0cc Daily bump.
From-SVN: r23654
1998-11-13 17:45:02 -07:00
Richard Henderson ee4dad3100 Oops, killed too much.
From-SVN: r23653
1998-11-13 16:01:18 -08:00
Richard Henderson 40b80dad5a alpha.c (reg_not_elim_operand): New.
* alpha.c (reg_not_elim_operand): New.
        * alpha.h (PREDICATE_CODES): Add it.
        * alpha.md (s48addq, s48subq patterns): Use it as the predicate
        for the multiplicand.

From-SVN: r23650
1998-11-13 14:27:44 -08:00
Jason Merrill 06ca201039 bad test
From-SVN: r23647
1998-11-13 15:10:12 -05:00
Jason Merrill 46d18cc681 fix
From-SVN: r23646
1998-11-13 15:08:16 -05:00
David Edelsohn f99f88e0d0 rs6000.md (movsf): Remove explicit secondary-reload-like functionality.
* rs6000.md (movsf): Remove explicit secondary-reload-like
        functionality.  Only truncate SFmode store if in FPR.
        (movsf splitters): Combine const_double splitters.
        (movsf_hardfloat): Add GPR support.

From-SVN: r23645
1998-11-13 14:57:13 -05:00
Kaveh R. Ghazi a9acf74156 configure.in: Check for calloc.
* configure.in: Check for calloc.
        * calloc.c: New file.
        * xmalloc.c (xcalloc): New function.

From-SVN: r23642
1998-11-13 16:36:04 +00:00
Kaveh R. Ghazi 67d0f6ab5e * libiberty.h: Prototype xcalloc.
From-SVN: r23641
1998-11-13 16:33:50 +00:00
Tom Tromey df66b5660c gjavah.c (main): Handle --output-class-directory argument.
* gjavah.c (main): Handle --output-class-directory argument.
	* jvspec.c (lang_specific_driver): Translate `-d' into
	-foutput-class-dir.
	* jcf.h (jcf_write_base_directory): Declare.
	* lang.c (lang_decode_option): Recognize -foutput-class-dir.
	* lang-options.h: Mention -foutput-class-dir.
	* jcf-write.c (jcf_write_base_directory): New global.
	(make_class_file_name): Put generated .class file into `-d'
	directory, or into source directory if -d not given.  Function now
	static.
	(write_classfile): Free class file name.  Handle case where class
	file name is NULL.
	(DIR_SEPARATOR): New macro.
	Include <sys/stat.h>

From-SVN: r23640
1998-11-13 14:09:53 +00:00
Mark Mitchell bbeeb2b020 except.c (expand_throw): Make sure first argument to __cp_push_exception is of type `void*' to avoid...
* except.c (expand_throw): Make sure first argument to
	__cp_push_exception is of type `void*' to avoid spurious error
	messages.

From-SVN: r23639
1998-11-13 13:02:24 +00:00
Stan Cox 93d9a2ebd8 splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to deprecate
* splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to deprecate
* t-splet (MULTILIB_OPTIONS): Likewise.

From-SVN: r23636
1998-11-13 11:40:49 +00:00
Tom Tromey 928962aeaa * Makefile.in (prefix): New macro.
From-SVN: r23635
1998-11-13 11:31:07 +00:00
Stan Cox 8c64be75d3 * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
From-SVN: r23634
1998-11-13 11:04:17 +00:00
Andrew MacLeod a49fb37af2 cplus-dem.c (demangle_prefix): Use the last __ in the mangled name when looking for the signature.
* cplus-dem.c (demangle_prefix): Use the last __
in the mangled name when looking for the signature. This allows
template names to begin with __.

From-SVN: r23627
1998-11-13 05:55:40 +00:00
Jeff Law e73c4a725a Daily bump.
From-SVN: r23626
1998-11-12 17:45:02 -07:00
Geoffrey Noer cae21ae8a9 Jumbo patch from Geoff Noer to rename CYGWIN32 to CYGWIN.
From-SVN: r23622
1998-11-12 11:37:47 -08:00
Per Bothner 15fdcfe952 Extensive changes.
�
Extensive changes.  See ChangeLog.

From-SVN: r23621
1998-11-12 08:15:18 -08:00
Per Bothner 1247285492 Extensive changes.
8
Extensive changes.  See ChangeLog.

From-SVN: r23620
1998-11-12 08:15:15 -08:00
Per Bothner 3885dfa72f *** empty log message ***
From-SVN: r23619
1998-11-12 08:15:14 -08:00
Per Bothner 421fb0858d Extensive changes.
0
Extensive changes.  See ChangeLog.

From-SVN: r23618
1998-11-12 08:15:08 -08:00
Per Bothner 14dd5b3804 class.c: Remove some unused variables.
h
	* class.c:  Remove some unused variables.
	* constants.c (find_string_constant):  New function.
	(count_constant_pool_bytes):  Fix to correctly handle wide constants.
	* decl.c (complete_start_java_method):  Don't _Jv_InitClass
	if flag_emit_class_files.

From-SVN: r23617
1998-11-12 06:26:09 -08:00
Per Bothner d640220cf8 class.c: Remove some unused variables.
�
	* class.c:  Remove some unused variables.
	* constants.c (find_string_constant):  New function.
	(count_constant_pool_bytes):  Fix to correctly handle wide constants.
	* decl.c (complete_start_java_method):  Don't _Jv_InitClass
	if flag_emit_class_files.

From-SVN: r23616
1998-11-12 06:26:08 -08:00