Commit Graph

19510 Commits

Author SHA1 Message Date
Kaveh Ghazi
9f3b55830c Regenerate config.in (accidentally omitted from last patch.)
From-SVN: r23700
1998-11-18 19:49:11 +00:00
Mark Mitchell
94e098d112 cp-tree.h (PTRMEM_CST_CLASS): Fix typo.
* cp-tree.h (PTRMEM_CST_CLASS): Fix typo.
	(global_delete_fndecl): New variable.
	* decl.c (global_delete_fndecl): Define it.
	(init_decl_processing): Set it.
	* init.c (build_builtin_delete_call): Use it.
	* tree.c (mapcar): Recursively call mapcar for the type of EXPR
	nodes.

From-SVN: r23699
1998-11-18 17:58:33 +00:00
Jim Wilson
ef18065c0a Fix memory corruption probelem in reload.
* reload.c (find_reloads_address_part): If have a CONST_INT, create
	a new one before passing it to force_const_mem.

From-SVN: r23698
1998-11-18 09:52:45 -08:00
Jim Wilson
10352226d4 Fix reload problem found by thumb port.
* reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
	find_reloads_address call.

From-SVN: r23697
1998-11-18 08:32:19 -08:00
J"orn Rennecke
f3f2255a8c expr.c (store_expr): Don't generate load-store pair if TEMP is identical (according to ==) with TARGET.
* expr.c (store_expr): Don't generate load-store pair
	if TEMP is identical (according to ==) with TARGET.

From-SVN: r23696
1998-11-18 14:15:03 +00:00
Jason Merrill
59e76fc6ba decl.c (cplus_expand_expr_stmt): Always complain about unresolved type.
* decl.c (cplus_expand_expr_stmt): Always complain about unresolved
	type.
Fixes Sec13/4/E13417.C
	* tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue.
	* call.c (build_object_call): Also support references to functions.
	* typeck.c (convert_for_initialization): Don't decay a function
	if the target is a reference to function.
Fixes Sec13/2_1_1_2/P13120.C
	* search.c (add_conversions): Get all the overloads from a class.
Fixes Sec13/2/P13101.C
	* decl.c (grok_ctor_properties): Complain about any constructor
	that will take a single arg of the class type by value.
Fixes Sec12/8/S12072.C
	* typeck2.c (build_functional_cast): Can't create objects of
	abstract classes this way.
	* cvt.c (ocp_convert): Likewise.
Fixes Sec10/4/S10018.C
	* decl.c (grokfndecl): Member functions of local classes are not
	public.
Fixes Sec10/3/P10092.C

From-SVN: r23695
1998-11-18 07:27:30 -05:00
Mark Mitchell
ab1878854a * Make-lang.in (cc1plus): Add dependency on hash.o.
From-SVN: r23694
1998-11-18 08:33:11 +00:00
Jason Merrill
35ea5ad303 up
From-SVN: r23693
1998-11-17 21:25:18 -05:00
Jason Merrill
7a78c20bc9 new
From-SVN: r23692
1998-11-17 21:24:18 -05:00
Jason Merrill
8ebeee52bc search.c (get_abstract_virtuals): Complain about virtuals with no final overrider.
* search.c (get_abstract_virtuals): Complain about virtuals with
	no final overrider.
	* typeck2.c (abstract_virtuals_error): Remove handling for virtuals
	with no final overrider.
	* class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P
	on virtuals with no final overrider.
Fixes Sec10/3/E10120.C
	* lex.c (reinit_parse_for_block): Add a space after the initial ':'.
Fixes Sec9/7/R09434.r0
	* class.c (finish_struct_1): Don't remove zero-width bit-fields until
	after layout_type.
Fixes Sec9/6/P09024.C
	* friend.c (do_friend): Don't set_mangled_name_for_decl.
Fixes Sec9/2/P09075.C
	* class.c (finish_struct_anon): Complain about non-fields.
	* decl2.c (build_anon_union_vars): Likewise.
	* decl.c (grokdeclarator): Normal data members can't have the same
	name as the class, either.
	* class.c (finish_struct_anon): Neither can members of an
	anonymous union.
Fixes Sec9/2/C09268.cm

From-SVN: r23691
1998-11-17 21:21:54 -05:00
Dave Love
7251e5522b 981117-1.f: New test.
1998-11-18  Dave Love  <d.love@dl.ac.uk>
	* g77.f-torture/compile/981117-1.f: New test.

From-SVN: r23690
1998-11-18 02:11:38 +00:00
Dave Love
080aaafcb0 New test.
From-SVN: r23689
1998-11-18 02:11:07 +00:00
Jeff Law
66ac6cefe6 Daily bump.
From-SVN: r23688
1998-11-17 17:45:02 -07:00
J"orn Rennecke
25963977c6 reload1.c (reload_reg_free_for_value_p): When considered reload has an output...
* reload1.c (reload_reg_free_for_value_p): When considered reload
	has an output, matching inputs are not sufficient to avoid conflict.

From-SVN: r23687
1998-11-17 14:26:40 +00:00
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