Commit Graph

14372 Commits

Author SHA1 Message Date
Mark Mitchell
920253a3bc iomanip.h: Use new friend <> syntax.
Sun Sep 28 12:09:04 1997  Mark Mitchell  <mmitchell@usa.net>

        * iomanip.h: Use new friend <> syntax.

From-SVN: r15775
1997-09-28 15:18:16 -04:00
Jason Merrill
386b8a85a6 [multiple changes]
Sat Sep 27 16:22:48 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* friend.c (do_friend): Disable injection for all template-derived
 	decls.
	* decl2.c (lang_decode_option): Handle -fguiding-decls.
	* parse.y (notype_template_declarator): New nonterminal.
	(direct_notype_declarator): Use it.
	(complex_direct_notype_declarator): Likewise.
	(object_template_id): Accept any kind of identifier after TEMPLATE.
	(notype_qualified_id): Don't add template declarators here.

Sat Sep 27 16:21:58 1997  Mark Mitchell  <mmitchell@usa.net>

        * call.c (add_template_candidate): Add explicit_targs parameter.
        (build_scoped_method_call): Use it.
        (build_overload_call_real): Likewise.
        (build_user_type_conversion_1): Likewise.
        (build_new_function_call): Likewise.
        (build_object_call): Likewise.
        (build_new_op): Likewise.
        (build_new_method_call): Likewise.
        (build_new_function_call): Handle TEMPLATE_ID_EXPR.
        (build_new_method_call): Likewise.

        * class.c (finish_struct_methods): Add specialization pass to
        determine which methods were specializing which other methods.
        (instantiate_type): Handle TEMPLATE_ID_EXPR.

        * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.

        * cp-tree.h (name_mangling_version): New variable.
	(flag_guiding_decls): Likewise.
        (build_template_decl_overload): New function.
        (begin_specialization): Likewise.
        (reset_specialization): Likewise.
        (end_specialization): Likewise.
        (determine_explicit_specialization): Likewise.
        (check_explicit_specialization): Likewise.
        (lookup_template_function): Likewise.
        (fn_type_unification): Add explicit_targs parameter.
        (type_unification): Likewise.

        * decl.c (duplicate_decls): Add smarts for explicit
        specializations.
        (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
        specializations.
        (grokfndecl): Call check_explicit_specialization.

        * decl2.c (lang_decode_option): Handle -fname-mangling-version.
        (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
        (check_classfn): Handle specializations.

        * error.c (dump_function_name): Print specialization arguments.

	* friend.c (do_friend): Don't call pushdecl for template
        instantiations.

        * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.

        * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
	and -fno-guiding-decls.

        * lex.c (identifier_type): Return PFUNCNAME for template function
        names.

        * method.c (build_decl_overload_real): New function.
        (build_template_parm_names): New function.
        (build_overload_identifier): Use it.
        (build_underscore_int): New function.
        (build_overload_int): Use it.  Add levels for template
        parameters.
        (build_overload_name): Likewise.  Also, handle TYPENAME_TYPEs.
        (build_overload_nested_names): Handle template type parameters.
        (build_template_decl_overload): New function.

        * parse.y (YYSTYPE): New ntype member.
        (nested_name_specifier): Use it.
        (nested_name_specifier_1): Likewise.
        (PFUNCNAME): New token.
        (template_id, object_template_id): New non-terminals.
        (template_parm_list): Note specializations.
        (template_def): Likewise.
        (structsp): Likewise.
        (fn.def2): Handle member template specializations.
        (component_decl_1): Likewise.
        (direct_notype_declarator): Handle template-ids.
        (component_decl_1): Likewise.
        (direct_notype_declarator): Handle template-ids.
        (primary): Handle TEMPLATE_ID_EXPR, and template-ids.

        * pt.c (processing_specializations): New variable.
        (template_header_count): Likewise.
        (type_unification_real): New function.
        (processing_explicit_specialization): Likewise.
        (note_template_header): Likewise.
        (is_member_template): Handle specializations.
        (end_template_decl): Call reset_specialization.
        (push_template_decl): Handle member template specializations.
        (tsubst): Likewise.
        (tsubst_copy): Handle TEMPLATE_ID_EXPR.
        (instantiate_template): Handle specializations.
        (instantiate_decl): Likewise.
        (fn_type_unification): Handle explicit_targs.
        (type_unification): Likewise.  Allow incomplete unification
        without an error message, if allow_incomplete.
        (get_bindings): Use new calling sequence for fn_type_unification.

        * spew.c (yylex): Handle PFUNCNAME.

        * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
        (really_overloaded_fn): Likewise.
        (get_first_fn): Handle function templates.

        * typeck.c (build_x_function_call): Use really_overloaded_fn.
        Handle TEMPLATE_ID_EXPR.
        (build_x_unary_op): Likewise.
        (build_unary_op): Likewise.
        (mark_addressable): Templates whose address is taken are marked
        as used.

From-SVN: r15774
1997-09-28 15:16:59 -04:00
Jason Merrill
e741306e3c * libio.h: Don't use _IO_LOCK_T if it's not defined.
From-SVN: r15773
1997-09-28 15:08:43 -04:00
Jason Merrill
72b0b53ec1 update
From-SVN: r15772
1997-09-28 15:02:46 -04:00
Philippe De Muyter
adfc539e94 flow.c (print_rtl_with_bb): Cast alloca return values for variables start and end.
* flow.c (print_rtl_with_bb): Cast alloca return values for variables
        start and end.

From-SVN: r15753
1997-09-28 01:52:39 -06:00
Jeffrey A Law
771c2d1bb7 Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST and AR instead of the _FOR_TARGET versions.
* Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST
        and AR instead of the _FOR_TARGET versions.

From-SVN: r15752
1997-09-28 01:44:42 -06:00
Jeffrey A Law
92cbe4d261 frame.c: Remove last change.
* frame.c: Remove last change.
        * dwarf2.h: Remove last change.
        * tree.h: Add declarations of DWARF2 unwind info support
        functions.
As requested by Jason.

From-SVN: r15751
1997-09-28 01:03:02 -06:00
Jason Merrill
2f3ca9e7f4 c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
* c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
	* tree.h (built_in_function): Likewise.
	* expr.c (expand_builtin): Likewise.
	* except.h: Likewise.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): New fn.
	* libgcc2.c (copy_reg): New fn.
	(__throw): Use it.

From-SVN: r15750
1997-09-27 14:16:15 -04:00
Jason Merrill
faf199a621 regen
From-SVN: r15749
1997-09-27 14:15:16 -04:00
Jeff Law
dc09d4f07b New file from Ulrich.
From-SVN: r15742
1997-09-26 22:07:24 -06:00
Ulrich Drepper
d604f4c6a3 libio changes from Ulrich to help "old linux" systems.
libio changes from Ulrich to help "old linux" systems.  See ChangeLog
for details.

From-SVN: r15741
1997-09-26 22:07:00 -06:00
Andreas Schwab
a7cc7f29f4 frame.c: Include gansidecl.h for PROTO.
* frame.c: Include gansidecl.h for PROTO.
        * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is
        defined.  Don't declare dwarf2out_cfi_label here.
        * dwarf2.h: Add declarations of DWARF2 unwind info support
        functions.
        * m68k.c: Include dwarf2.h.
        (output_function_prologue): Add dwarf2 support.
        * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros.
        (INCOMING_FRAME_SP_OFFSET): Likewise.
Update m68k patch from Andreas.

From-SVN: r15740
1997-09-26 21:58:57 -06:00
Paul Eggert
407cb092e3 c-typeck.c (build_binary_op): Warn about comparing signed vs unsigned if...
* c-typeck.c (build_binary_op): Warn about comparing signed vs
        unsigned if -W is specified and -Wno-sign-compare is not.
        * c-decl.c (warn_sign_compare): Initialize to -1.
        (c_decode_option): -Wall no longer implies -Wsign-compare.

From-SVN: r15739
1997-09-26 21:46:35 -06:00
Andreas Schwab
3ba104945b integrate.c (expand_inline_function): Make sure there is at least one insn that can be used as an insertion point.
* integrate.c (expand_inline_function): Make sure there is at
        least one insn that can be used as an insertion point.

From-SVN: r15738
1997-09-26 21:42:59 -06:00
Andreas Schwab
b9620d0e58 decl.c (init_decl_processing): Declare __builtin_constant_p as accepting any kind of type, not only int.
1997-09-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* decl.c (init_decl_processing): Declare __builtin_constant_p as
	accepting any kind of type, not only int.

From-SVN: r15734
1997-09-26 11:59:35 -04:00
Jason Merrill
cc1c702f8c update
From-SVN: r15733
1997-09-26 11:50:51 -04:00
Jason Merrill
1052cd6573 search.c (get_matching_virtual): Notice virtual bases when sorrying about covariant returns.
* search.c (get_matching_virtual): Notice virtual bases when sorrying
	about covariant returns.

From-SVN: r15732
1997-09-26 11:42:46 -04:00
Jason Merrill
c2b9a5c49d never mind
From-SVN: r15731
1997-09-26 11:39:41 -04:00
Jason Merrill
318e85cf8d add
From-SVN: r15721
1997-09-26 03:40:44 -04:00
Jason Merrill
405a745b2e parse.y (member_init): Also imply typename here.
* parse.y (member_init): Also imply typename here.  Remove ancient
	extension for initializing base members.

From-SVN: r15720
1997-09-26 03:24:48 -04:00
Jason Merrill
1e60a96e07 fix thinko
From-SVN: r15719
1997-09-26 03:03:44 -04:00
Jason Merrill
3055528c86 add
From-SVN: r15718
1997-09-25 23:13:35 -04:00
Jason Merrill
5a4a879c40 bastring.h: Enable exceptions.
* std/bastring.h: Enable exceptions.
 	(assign, append, insert, replace): Implement member template versions.

	* tstring.cc: Add some tests for the member templates.

From-SVN: r15717
1997-09-25 23:01:01 -04:00
Jason Merrill
896470e737 update
From-SVN: r15716
1997-09-25 21:38:04 -04:00
Jason Merrill
653cc74afc Handle multi-level typenames and implicit typename in base list.
* parse.y (typename_sub{,[0-2]}): New rules.
	(structsp, rule TYPENAME_KEYWORD): Use typename_sub.
	(nonnested_type): New rule.
	(complete_type_name): Use it.
	(base_class.1): Use typename_sub and nonnested_type.
	(nested_name_specifier): Don't elide std:: here.
	* decl.c (make_typename_type): Handle getting a type for NAME.
	(lookup_name_real): Turn std:: into :: here.

	Rvalue conversions were removed in London.
	* call.c (is_subseq): Don't consider lvalue transformations.
	(build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
	(joust): Reenable ?: kludge.

From-SVN: r15715
1997-09-25 14:56:40 -04:00
Doug Evans
6d4312ddbf Add docs for sparc -malign-{jumps,loops,functions}.
Fix typo in i386 -malign-functions docs.
Brought over from FSF.

From-SVN: r15714
1997-09-25 15:57:01 +00:00
Jason Merrill
c5cec899dd dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/
* dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/

	* final.c (final_end_function): Also do dwarf2 thing if
	DWARF2_DEBUGGING_INFO.
	(final_start_function): Likewise.

From-SVN: r15713
1997-09-25 00:57:50 -04:00
Jeffrey A Law
e166cb188a Bump for snapshot.
From-SVN: r15710
1997-09-24 22:10:25 -06:00
Doug Evans
01a94cba00 sparc stuff brought over from fsf.
From-SVN: r15709
1997-09-25 01:15:30 +00:00
Doug Evans
1ccfa253c9 sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc.
* sparc/sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc.
	(TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=,
	-malign-functions=.
	(sparc_align_{loops,jumps,funcs}_string): Declare.
	(sparc_align_{loops,jumps,funcs}): Declare.
	(DEFAULT_SPARC_ALIGN_FUNCS): New macro.
	(FUNCTION_BOUNDARY): Use sparc_align_funcs.
	(STACK_BIAS): Define.
	(SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT first, then perform
	test.
	(SPARC_SETHI_P): New macro.
	(CONST_OK_FOR_LETTER_P): Use it.
	(ASM_OUTPUT_ALIGN_CODE): Define.
	(ASM_OUTPUT_LOOP_ALIGN): Define.

	* sparc.h (ASM_COMMENT_START): Define.

	* sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print
	ascii form as well.

From-SVN: r15708
1997-09-25 01:14:03 +00:00
Doug Evans
96987e9648 sparc.c (dwarf2out_cfi_label): Add declaration.
* sparc.c (dwarf2out_cfi_label): Add declaration.
	(save_regs, output_function_prologue): Remove cast for it.
	(sparc_flat_{save_restore,output_function_prologue): Likewise.
	({save,restore}_regs): No longer inline.

From-SVN: r15707
1997-09-25 01:10:47 +00:00
Doug Evans
bf62bbf1bc sparc.c (finalize_pic): Update call to gen_get_pc_via_call.
* sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call.

	* sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals.
	(sparc_align_{loops,jumps,funcs}): New globals.
	(sparc_override_options): Handle -malign-loops=, -malign-jumps=,
	-malign-functions=.
	(move_operand): Use SPARC_SETHI_P.
	(arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then
	perform test.
	(arith11_double_operand): Likewise.
	(arith10_double_operand): Likewise.
	(finalize_pic): Finish sparc64 support.
	(emit_move_sequence): Use SPARC_SETHI_P.  Simplify low part of
	64 bit constants if able.
	(output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD.
	(sparc_builtin_saveregs, sparc64 case): Don't save fp regs if
	! TARGET_FPU.

	* sparc.h (ASM_COMMENT_START): Define.
	* sparc.c (output_function_prologue): Use it.
	(sparc_flat_output_function_{epi,pro}logue): Likewise.

From-SVN: r15706
1997-09-25 01:09:41 +00:00
Doug Evans
5d4f5e8767 sparc.md (*): Use GEN_INT instead of gen_rtx.
* sparc/sparc.md (*): Use GEN_INT instead of gen_rtx.
	(get_pc_sp32): Use for sparc64 as well.
	(lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts.
	(sethi_di_sp64_const): Likewise.
	(movtf_cc_sp64): Check TARGET_HARD_QUAD.
	(cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast.
	(ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.

From-SVN: r15705
1997-09-25 01:03:13 +00:00
Doug Evans
26b551afd8 Regenerate.
From-SVN: r15704
1997-09-25 00:59:12 +00:00
Doug Evans
2334126e71 configure.in (sparc64-*-linux*): Recognize.
* configure.in (sparc64-*-linux*): Recognize.  Add sparc/xm-sparc.h
	to xm_file list on 32-bit sparc-linux.

From-SVN: r15703
1997-09-25 00:55:32 +00:00
Doug Evans
6f7423f547 * glimits.h (LONG_MAX): Handle sparc64.
From-SVN: r15702
1997-09-25 00:50:38 +00:00
Doug Evans
d98cda2239 * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define.
From-SVN: r15701
1997-09-25 00:49:27 +00:00
Doug Evans
bbfbedb141 xm-linux.h: Include some standard headers if not inhibit_libc.
* sparc/xm-linux.h: Include some standard headers if not inhibit_libc.
	Don't include xm-sparc.h.

From-SVN: r15700
1997-09-25 00:44:26 +00:00
Doug Evans
18b14bd816 Sync with fsf version.
From-SVN: r15699
1997-09-25 00:41:02 +00:00
Doug Evans
a120a9eaa7 sysv4.h (ASM_COMMENT_START): Delete.
* sparc/sysv4.h (ASM_COMMENT_START): Delete.
	* sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete,
	use sparc.h's copies.

From-SVN: r15698
1997-09-25 00:38:04 +00:00
Doug Evans
0286bd98f3 linux-aout.h (COMMENT_BEGIN): Delete.
* sparc/linux-aout.h (COMMENT_BEGIN): Delete.
	* sparc/linux.h (COMMENT_BEGIN): Likewise.
Bring over from FSF.

From-SVN: r15697
1997-09-25 00:33:48 +00:00
Jim Wilson
5a5e9503b2 Fix typo in hjl ChangeLog entry.
From-SVN: r15689
1997-09-24 15:31:10 -07:00
Jason Merrill
3041f77a20 update
From-SVN: r15687
1997-09-24 00:51:57 -04:00
Jeff Law
5dceb6d28e new test (already in c-torture)
From-SVN: r15685
1997-09-23 15:20:32 -06:00
Doug Evans
bfe8701346 New files for sparc64-linux port.
From-SVN: r15679
1997-09-23 18:41:47 +00:00
Jeff Law
ce2157a1a9 fold-const.c (make_range): Correctly handle cases of converting from unsigned to signed type.
* fold-const.c (make_range): Correctly handle cases of converting
        from unsigned to signed type.

        * fold-const.c (merge_ranges): Make sure that if one range is subset
        of another, it will always be the second range.  Correct (+,-) case to
        account for this.

Brought over from gcc2; fixes sparc bug.

From-SVN: r15678
1997-09-23 12:35:51 -06:00
Doug Evans
4bc8c3c116 New files for sparc64-linux port.
From-SVN: r15675
1997-09-23 18:33:32 +00:00
David S. Miller
e13a25d5a3 expmed.c (expand_divmod): If compute_mode is not the same as mode...
* expmed.c (expand_divmod): If compute_mode is not the same as
        mode, handle the case where convert_modes() causes op1 to no
        longer be a CONST_INT.

From-SVN: r15672
1997-09-23 01:25:25 -06:00
Alexandre Oliva
4fd10464e7 Forgot to commit.
From-SVN: r15671
1997-09-23 01:19:31 -06:00
David S. Miller
c107334d5c reorg.c (dbr_schedule): At end of this pass...
* reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED
        note holding get_jump_flags() calculation to all JUMP_INSNs.
        * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA.
        * rtl.c (reg_note_name): Add new note types.

From-SVN: r15670
1997-09-23 01:14:07 -06:00