Commit Graph

17826 Commits

Author SHA1 Message Date
Dave Love
e45a12c6e7 980729-0.f: New test.
1998-08-01  Dave Love  <d.love@dl.ac.uk>
	* g77.f-torture/compile/980729-0.f: New test.

From-SVN: r21516
1998-08-01 09:41:39 +00:00
Dave Love
07b664cae4 New test.
From-SVN: r21515
1998-08-01 09:38:20 +00:00
Jason Merrill
c787dd82d5 init.c (init_init_processing): Remove BI* handling.
* init.c (init_init_processing): Remove BI* handling.
	(build_builtin_call): Remove.
	(build_builtin_delete_call): New fn.
	(build_delete): Use it.

From-SVN: r21514
1998-07-31 22:36:54 -04:00
Jeff Law
acb26b31f9 Daily bump.
From-SVN: r21512
1998-07-31 18:45:02 -06:00
Michael Meissner
ef79218343 If -Os use load/store multiple instructions
From-SVN: r21511
1998-07-31 17:30:57 +00:00
Jeff Law
02c452afe0 netbsd.h: Fix typo.
�
        * ns32k/netbsd.h: Fix typo.

From-SVN: r21507
1998-07-31 10:10:59 -06:00
Jeff Law
b2d3117c44 netbsd.h: Fix typo.
�
        * ns32k/netbsd.h: Fix typo.

From-SVN: r21506
1998-07-31 10:10:57 -06:00
Mark Mitchell
39c01e4c53 cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro.
1998-07-31  Mark Mitchell  <mark@markmitchell.com>
	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro.
	(maybe_check_template_type): New function.
	* decl.c (maybe_process_template_type_declaration): New function,
	split out from pushtag  Call maybe_check_template_type.
	(pushtag): Use it.  Use PROCESSING_REAL_TEMPLATE_DECL_P.
	(xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P.
	* friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P.
	* pt.c (template_class_depth_real): Generalization of ...
	(template_class_depth): Use it.
	(register_specialization): Use duplicate_decls for duplicate
	declarations of specializations.
	(maybe_check_template_type): New function.
	(push_template_decl_real): Fix comment.
	(convert_nontype_argument): Likewise.
	(lookup_template_class): Likewise.  Avoid an infinite loop on
	erroneous code.
	(tsubst_friend_function): Fix comment.
	(tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is
	an IDENTIFIER_NODE.
	* semantics.c (begin_function_definition): Use
	reset_specialization to note that template headers don't apply
	directly to declarations after the opening curly for a function.

From-SVN: r21505
1998-07-31 15:01:21 +00:00
Doug Evans
5f97de0ac9 m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number labels with .debugsym if no parallel insns.
* m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
	labels with .debugsym if no parallel insns.

From-SVN: r21504
1998-07-31 12:29:10 +00:00
Jeff Law
0a5d08b853 Daily bump.
From-SVN: r21502
1998-07-30 18:45:02 -06:00
Richard Henderson
30e2dcbf78 alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
* alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
        (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.

From-SVN: r21501
1998-07-30 12:16:39 -07:00
David Edelsohn
624d5e13d4 x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
* rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
        (AR_FOR_TARGET): Define.

From-SVN: r21499
1998-07-30 13:07:25 -04:00
Mark Mitchell
b170964afd dyn-string.h: New file.
* dyn-string.h: New file.
	* dyn-string.c: Likewise.
	* Makefile.in (OBJS): Add dyn-string.o.
	(dwarf2out.o): Add dyn-string.h dependency.
	(dyn-string.o): List dependencies.
	* dwarf2out.c: Include dyn-string.h.
	(ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
	(addr_const_to_string): Take a dyn_string_t, not a char* as a
	prototype.  Use dyn_string_append rather than strcat, throughout.
	(addr_to_string): Use dyn_string_t.

From-SVN: r21496
1998-07-30 12:30:30 +00:00
Ken Raeburn
07417085a1 Function entry/exit profiling instrumentation:
* expr.h (profile_function_entry_libfunc, profile_function_exit_libfunc):
Declare new variables.
* optabs.c: Define them here.
(init_optabs): Initialize them.
* tree.h (struct tree_decl): New flag no_instrument_function_entry_exit.
(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
* c-decl.c (duplicate_decls): Merge it.
* c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
(init_attributes): Use it for "no_instrument_function".
(decl_attributes): Handle it, for functions that have not yet been compiled.
Set decl flag.
* flags.h (flag_instrument_function_entry_exit): Declare new variable.
* toplev.c (flag_instrument_function_entry_exit): Define it here.
(f_options): New option "instrument-functions".
* function.h (struct function): New field instrument_entry_exit.
* function.c (current_function_instrument_entry_exit): New variable.
(push_function_context_to, pop_function_context_from): Save and restore.
(expand_function_start): Set current_ variable, maybe emit return label and
entry profile call.
(expand_function_end): Maybe emit exit profile call.
Testsuite:
* gcc.c-torture/special/eeprof-1.c: New test, for -finstrument-functions.
* gcc.c-torture/special/special.exp: Run it.

From-SVN: r21495
1998-07-30 10:38:22 +00:00
Jeff Law
6bcf8e5a04 Daily bump.
From-SVN: r21493
1998-07-29 18:45:02 -06:00
Jeff Law
fe9f823f20 i386.md (movqi): When optimizing a load of (const_int 1) into a NON_QI_REG_P...
p
        * i386.md (movqi): When optimizing a load of (const_int 1) into a
        NON_QI_REG_P, pretend the register is SImode.
Fixes minor egcs-1.1 regression.

From-SVN: r21490
1998-07-29 18:00:18 -06:00
Jeff Law
3192f02483 i386.md (movqi): When optimizing a load of (const_int 1) into a NON_QI_REG_P...
�
        * i386.md (movqi): When optimizing a load of (const_int 1) into a
        NON_QI_REG_P, pretend the register is SImode.
Fixes minor egcs-1.1 regression.

From-SVN: r21489
1998-07-29 18:00:16 -06:00
Manfred Hollstein
0ce065bdf6 configure: Fix --without/--disable cases for gxx-include-dir.
1998-07-29  Manfred Hollstein  <manfred@s-direktnet.de>
	* configure: Fix --without/--disable cases for gxx-include-dir.

From-SVN: r21486
1998-07-29 17:13:57 -06:00
Todd Vierling
58600d2429 configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
* configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
        Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
        manufacturer id for ns32k.
        * configure: Regenerated.
        * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
        * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
        * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
        * config/m68k/netbsd.h: Same.
        * config/ns32k/netbsd.h: Same.
        * config/sparc/netbsd.h: Same.

From-SVN: r21480
1998-07-29 16:51:47 -06:00
Jeff Law
15fec413e7 unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO or UNROLL_COMPLETELY loop that starts with a...
P
        * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
        or UNROLL_COMPLETELY loop that starts with a jump to its
        exit code.

From-SVN: r21476
1998-07-29 15:41:04 -06:00
Jeff Law
47d41103c5 unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO or UNROLL_COMPLETELY loop that starts with a...
�
        * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
        or UNROLL_COMPLETELY loop that starts with a jump to its
        exit code.

From-SVN: r21475
1998-07-29 15:41:01 -06:00
David Edelsohn
a238cd8bd1 rs6000.md (absdi2 define_split): Swap operands of MINUS.
* rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
        * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
        (print_operand, case 'B'): Don't fall through.
        (print_operand, case 'S'): Correct mask begin/end computation.
        Use HOST_BITS_PER_WIDE_INT.
        * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
        (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
        * rs6000/aix41.h (CPP_PREDEFINES): Same.
        * rs6000/aix43.h (CPP_PREDEFINES): Same.

From-SVN: r21474
1998-07-29 15:35:05 -04:00
Jason Merrill
19f1bd3476 decl.c (push_overloaded_decl): Use current_namespace instead of DECL_CONTEXT (decl) to determine where we go.
* decl.c (push_overloaded_decl): Use current_namespace instead of
	DECL_CONTEXT (decl) to determine where we go.

From-SVN: r21473
1998-07-29 10:56:33 -04:00
Nick Clifton
e0d75375e7 remove earlyclobber constraint from extendqisi2_insn
From-SVN: r21471
1998-07-29 14:11:16 +00:00
Jason Merrill
53fdbb3b36 * decl.c (lookup_name_real): Fix typo.
From-SVN: r21469
1998-07-29 09:05:28 -04:00
Jeff Law
53624284c6 Daily bump.
From-SVN: r21466
1998-07-28 18:45:02 -06:00
Jason Merrill
4e88d51bcd configure.in: Fix --without/--disable cases for local-prefix, gxx-include-dir and checking.
* configure.in: Fix --without/--disable cases for local-prefix,
        gxx-include-dir and checking.

From-SVN: r21464
1998-07-28 17:47:28 -06:00
Jeffrey A Law
2e18cb32cc * gcc.c-torture/compile/980729-1.c: New test.
From-SVN: r21463
1998-07-28 17:18:04 -06:00
David S. Miller
e85b2d66b0 Enable haifa for sparc64 too.
From-SVN: r21461
1998-07-28 16:13:44 -07:00
Jason Merrill
ac478ac0fd cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
        * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
        * i386/winnt.c (associated_type): New fn.
        (i386_pe_valid_type_attribute_p): New fn.
        (i386_pe_check_vtable_importexport): Remove.
        (i386_pe_dllexport_p): Use associated_type.
        (i386_pe_dllimport_p): Likewise.
        From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
        * i386.c (i386_valid_type_attribute_p): Also accept
        attributes for METHOD_TYPEs.

From-SVN: r21456
1998-07-28 16:30:29 -06:00
Peter Gerwinski
28372f4188 tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
�
        * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.

From-SVN: r21455
1998-07-28 16:19:53 -06:00
Jeff Law
f4494d3838 Tweak last entry
From-SVN: r21451
1998-07-28 16:06:42 -06:00
Craig Burley
dd75c2921d gcc.c: Fix commentary describing %g, %u, %U, and %O.
d
        * gcc.c: Fix commentary describing %g, %u, %U, and %O.
        * gcc.c (do_spec_1): Fix support for %O so the
        temporary file name made for it the first time
        gets reused subsequently.

From-SVN: r21450
1998-07-28 15:33:43 -06:00
Craig Burley
e67ac8e6ee gcc.c: Fix commentary describing %g, %u, %U, and %O.
* gcc.c: Fix commentary describing %g, %u, %U, and %O.
        * gcc.c (do_spec_1): Fix support for %O so the
        temporary file name made for it the first time
        gets reused subsequently.

From-SVN: r21449
1998-07-28 15:33:41 -06:00
Mark Mitchell
8fb08bdddf friend.c (is_friend): Be lenient with member functions to deal with nested friends.
* friend.c (is_friend): Be lenient with member functions to deal
	with nested friends.

From-SVN: r21444
1998-07-28 16:50:16 +00:00
Benjamin Kosnik
9b126a1025
try 2

From-SVN: r21443
1998-07-28 14:07:12 +00:00
Benjamin Kosnik
fb3ad9b3d3
friend test

From-SVN: r21442
1998-07-28 14:06:48 +00:00
Benjamin Kosnik
e674dda9ac *** empty log message ***
From-SVN: r21441
1998-07-28 14:06:12 +00:00
Benjamin Kosnik
49e4181d22
try 1

From-SVN: r21440
1998-07-28 14:05:55 +00:00
Benjamin Kosnik
32fcacb013
try 3

From-SVN: r21439
1998-07-28 14:01:25 +00:00
Jason Merrill
282a221c4e class.c (finish_struct_1): Convert integer_zero_node to ssizetype before passing it to set_rtti_entry.
* class.c (finish_struct_1): Convert integer_zero_node to
 	ssizetype before passing it to set_rtti_entry.
	* typeck2.c (initializer_constant_valid_p): Allow conversion of 0
	of any size to a pointer.

From-SVN: r21438
1998-07-28 10:00:46 -04:00
Benjamin Kosnik
9e393e151a *** empty log message ***
From-SVN: r21436
1998-07-28 13:38:38 +00:00
Vladimir N. Makarov
1ed0205e35 cse.c (cse_insn): Enable subsitution inside libcall only for REG, SUBREG, MEM.
�
	* cse.c (cse_insn): Enable subsitution inside libcall only for REG,
	SUBREG, MEM.
	* rtlanal.c (replace_rtx): Prohibit replaces in	CONST_DOUBLE.

From-SVN: r21435
1998-07-28 12:54:04 +00:00
Mark Mitchell
4d17a06f32 cplus-dem.c (type_kind_t): New type.
* cplus-dem.c (type_kind_t): New type.
	(demangle_template_value_parm): Add type_kind_t parameter.  Rely
	on this paramter, rather than demangling the type again.
	(demangle_integral_value): Pass tk_integral.
	(demangle_template_: Pass the value returned from do_type.
	(do_type): Return a type_kind_t.  Pass tk_integral to
	demangle_template_value_parm for array bounds.
	(demangle_fund_type): Likewise.

From-SVN: r21434
1998-07-28 11:45:32 +00:00
Mark Mitchell
36a117a5b3 cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove.
* cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove.
	(build_template_decl_overload): Remove.
	(set_mangled_name_for_decl): New function.
	(innermost_args): Remove is_spec parameter.
	(most_specialized, most_specialized_class): Remove declarations.
	(lookup_template_class): Add entering_scope parameter.
	(maybe_process_partial_specialization): New function.
	(finish_template_decl): Likewise.
	(finish_template_type): Likewise.
	* class.c (finish_struct): Clean up processing of member template
	specializations.
	* decl.c (pushtag): Fix	formatting.
	(lookup_tag): Improve handling of pseudo-global levels.
	(make_typename_type): Adjust call to lookup_template_class.
	(shadow_tag): Use maybe_process_partial_specialization.
	(xref_tag): Improve handling of member friends.
	(start_function): Call push_nested_class before
	push_template_decl.  Don't call push_template_decl for
	specializations.
	* decl2.c (grok_x_components): Don't call xref_tag for
	template instantiations.  Handle UNION_TYPEs like RECORD_TYPEs.
	(grokclassfn): Use set_mangled_name_for_decl.
	(arg_assoc_class): Adjust call to innermost_args.
	(mark_used): Don't call instantiate_decl for a TEMPLATE_DECL.
	* error.c (dump_function_name): Improve printing of template
	function names.
	* friend.c (is_friend): Don't compare types of decls to determine
	friendship, unless flag_guiding_decls.
	(make_friend_class): Partial specializations cannot be friends.
	(do_friend): Use set_mangled_name_for_decl.  Call
	push_template_decl_real instead of push_template_decl.
	* method.c (build_decl_overload_real): Remove prototype.  Give it
	external linkage.
	(build_overload_identififer): Adjust call to innermost_args.
	(build_template_decl_overload): Remove.
	(set_mangled_name_for_decl): New function.
	* parse.y (.finish_template_type): New non-terminal.
	(template_def): Use finish_template_decl.  Use template_extdef
	instead of extdef.
	(template_extdef, template_datadef): New non-terminals, containing
	only those rules for things which can be templates.
	(datadef): Tidy.
	(template_type, self_template_type): Use .finish_template_type.
	(named_class_head): Use maybe_process_partial_specialization.
	* pt.c (mangle_class_name_for_template): Remove context parameter.
	(get_class_bindings): Remove outer_args parameter.
	(complete_template_args): Remove.
	(add_outermost_template_args): New function.
	(register_specialization): Return the specialization.
	(unregister_specialization): New function.
	(tsubst_template_parms): Likewise.
	(most_specialized, most_specialized_class): Prototype here as
	static.
	(original_template): Rename to most_general_template.
	(tsubst_template_parms): New function.
	(set_mangled_name_for_template_decl): Likewise.
	(TMPL_ARGS_DEPTH): New macro.
	(TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust.
	(TMPL_ARGS_LEVEL): New macro.
	(SET_TMPL_ARGS_LEVEL): Likewise.
	(TMPL_ARG): Likewise.
	(SET_TMPL_ARG): Likewise.
	(TMPL_ARGS_DEPTH): Likewise.
	(finish_member_template_decl): Use finish_template_decl.
	(maybe_process_partial_specialization): New function, split out
	from tsubst.
	(inline_needs_template_parms): Use TMPL_PARMS_DEPTH.
	(maybe_begin_member_template_processing): Use new macros.
	(is_member_template): Likewise.
	(is_member_template_class): Likewise.
	(add_to_template_args): Likewise.  Deal with multiple levels of
	args.
	(maybe_process_partial_specialization): New function.
	(retrieve_specialization): Add consistency check.
	(determine_specialization): Return full argument list.
	(check_explicit_specialization): Tweak friend handling.  Use full
	argument lists.  Simplify.
	(current_template_args): Use new macros.
	(push_template_decl_real): Change ill-named mainargs to specargs.
	Check that a partial specialization actually specializes at least
	one parameter.   Improve friend handling.  Modify for full
	template arguments.
	(classtype_mangled_name): Don't mangle the names of
	specializations.
	(lookup_template_class): Add entering_scope parameter.  Use it to
	avoid finding a template type when an instantiation is required.
	Simplify.  Use full template arguments.
	(tsubst_friend_function): Use unregister_specialization.  Use new
	macros.  Use full template arguments.
	(tsubst_friend_class): Substitute, using tsubst_template_parms,
	into the template parameters before passing them to
	redeclare_class_template.
	(instantiate_class_template): Simplify.  Use full template
	arguments.  Adjust calls to get_class_bindings.  Use
	SET_IDENTIFIER_TYPE_VALUE where needed.  Improve friend handling.
	(innermost_args): Use new macros.
	(tsubst_aggr_type): New function, split out from tsubst.
	(tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling
	conventions for lookup_tmeplate_class.  Refine handling of partial
	instantiations.   Remove calls to complete_template_args.
	Simplify.  Add consistency checks.  Use set_mangled_name_for_decl
	and set_mangled_name_for_template_decl.
	(tsubst_copy): Use tsubst_aggr_type.
	(instantiate_template): Use full template arguments.
	(more_specialized): Improve formatting.
	(more_specialized_class): Adjust calls to get_class_bindings.
	(get_bindings_real): Don't call complete_template_args.
	(most_specialized): Don't overwrite input; create a new list.
	(most_specialized_class): Use most_general_template.
	(regenerate_decl_from_template): Use unregister_specialization.
	Use full template arguments.
	(instantiate_decl): Use full template arguments.
	(set_mangled_name_for_template_decl): New function.
	* semantics.c (begin_class_definition): Use
	maybe_process_partial_specialization.
	(finish_member_class_template): New function.
	(finish_template_decl): Likewise.
	(finish_template_type): Likewise.
	(typeck.c): Don't crash after issuing a compiler_error.
	* Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict.

From-SVN: r21433
1998-07-28 01:03:16 +00:00
Jeff Law
0167ae91ff Daily bump.
From-SVN: r21431
1998-07-27 18:45:03 -06:00
Jason Merrill
3551c17764 * typeck2.c (build_functional_cast): Handle default-initialization.
From-SVN: r21427
1998-07-27 17:47:41 -04:00
Jason Merrill
b3abfd6fc1 tree.c (simple_cst_equal, [...]): OK if the elts are identical.
* tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
	identical.

From-SVN: r21425
1998-07-27 17:42:35 -04:00
Jeffrey A Law
198f32a6e4 * pa.c (move_operand): Accept CONSTANT_P_RTX.
From-SVN: r21423
1998-07-27 15:20:00 -06:00
Mike Stump
31e9c6ed12 * compare_tests: New script.
From-SVN: r21422
1998-07-27 15:12:03 -06:00