Jim Wilson [Mon, 27 Apr 1998 18:39:07 +0000 (18:39 +0000)]
Fix hppa miscompilation bug reported by Manfred Hollstein.
* loop.c (check_dbra_loop): New locals jump, first_compare, and
compare_and_branch. Call get_condition to set first_compare.
Set compare_and_branch to number of compare/branch instructions.
Replace PREV_INSN (PREV_INSN (loop_end)) with first_compare.
Replace '2' with compare_and_branch.
Mark Mitchell [Mon, 27 Apr 1998 14:02:45 +0000 (14:02 +0000)]
decl.c (maybe_push_to_top_level): Always clear current_template_parms and processing_template_decl.
* decl.c (maybe_push_to_top_level): Always clear
current_template_parms and processing_template_decl.
(pushtag): Remove check of current_class_type and some comments,
since maybe_push_to_top_level no longer creates confusion.
hostnm_.c (G77_hostnm_0): Fix off-by-one error that was trashing the byte just beyond the CHARACTER*(*)...
Sun Apr 26 09:13:41 1998 Craig Burley <burley@gnu.org>
* libU77/hostnm_.c (G77_hostnm_0): Fix off-by-one error
that was trashing the byte just beyond the CHARACTER*(*)
argument.
Mark Mitchell [Sun, 26 Apr 1998 16:30:11 +0000 (16:30 +0000)]
cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro.
* cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro.
(DECL_CLASS_TEMPLATE_P): Likewise.
(DECL_PRIMARY_TEMPLATE): Likewise.
(PRIMARY_TEMPLATE_P): Use it.
(push_template_decl_real): New function.
(redeclare_class_template): Take new template parameters as
input.
(is_specialization_of): New function.
(comp_template_args): Declare.
* decl.c (pushtag): Handle friend template classes.
(xref_tag): Likewise. Use new calling convention for
redeclare_class_template.
* decl2.c (grok_x_components): Handle friend templates.
* friend.c (is_friend): Use is_specialization_of where
appropriate. Deal with friend class templates.
(make_friend_class): Let a class template be friends with itself.
* pt.c (comp_template_args): Remove declaration.
(tsubst_friend_class): New function.
(push_template_decl_real): New function.
(push_template_decl): Use it.
(redeclare_class_template): Adjust for new calling convention.
(comp_template_args): Give it external linkage.
(instantiate_class_type): Use tsubst_friend_class to deal
with friend templates.
* typeck.c (comptypes): Use comp_template_args, rather than
expanding it inline.
* parse.y (component_decl): Handle a nested template type
like other component type declarations.
John Carr [Sat, 25 Apr 1998 16:09:24 +0000 (16:09 +0000)]
alias.c (alias_invariant): New variable.
* alias.c (alias_invariant): New variable.
(record_base_value): New argument INVARIANT.
(memrefs_conflict_p): If a register has an entry in the alias_invariant
array, try substituting that value for the register.
* rtl.h: Declare record_base_value.
* loop.c, unroll.c: Update callers of record_base_value.
* alias.c (find_base_value, find_base_term): SIGN_EXTEND and
ZERO_EXTEND do not affect base values.
John Carr [Fri, 24 Apr 1998 13:16:26 +0000 (13:16 +0000)]
expr.c (expand_builtin, [...]): Set MEM_IN_STRUCT_P if the argument is the address of a structure or array.
* expr.c (expand_builtin, case MEMSET): Set MEM_IN_STRUCT_P
if the argument is the address of a structure or array.
* configure.in: Enable Haifa scheduler by default for SPARC.
Jeff Law [Fri, 24 Apr 1998 10:03:16 +0000 (04:03 -0600)]
dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC appropriately.
d
* dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC
appropriately.
(dbxout_type_method_1, dbxout_type): Likewise.
(print_int_cst_octal, print_octal, dbxout_symbol): Likewise.
(dbxout_type): Fix check for when to print a type range in
octal vs decimal.
Jeff Law [Fri, 24 Apr 1998 10:03:15 +0000 (04:03 -0600)]
dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC appropriately.
�
* dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC
appropriately.
(dbxout_type_method_1, dbxout_type): Likewise.
(print_int_cst_octal, print_octal, dbxout_symbol): Likewise.
(dbxout_type): Fix check for when to print a type range in
octal vs decimal.
Makefile.in (libgcc2.ready): Add explicit dependancy from $(STMP_FIXPROTO) to ensure all necessary include...
d
* Makefile.in (libgcc2.ready): Add explicit dependancy from
$(STMP_FIXPROTO) to ensure all necessary include files have
been created and to guarantee proper parallel builds.
Makefile.in (libgcc2.ready): Add explicit dependancy from $(STMP_FIXPROTO) to ensure all necessary include...
�
* Makefile.in (libgcc2.ready): Add explicit dependancy from
$(STMP_FIXPROTO) to ensure all necessary include files have
been created and to guarantee proper parallel builds.
Jason Merrill [Thu, 23 Apr 1998 22:26:41 +0000 (22:26 +0000)]
cp-tree.def: Add WRAPPER.
* cp-tree.def: Add WRAPPER. USER_CONV now only has two ops.
* cp-tree.h: Add WRAPPER support.
* call.c (add_candidate): Split out from add_*_candidate fns.
(build_over_call): Take the candidate instead of function and args.
Enforce access control here. Emit overload warnings here.
(add_warning): New fn.
(joust): Add WARN parm. If not set, call add_warning instead of
printing a warning. Reenable some warnings.
(tourney): Pass it.
(convert_like): Adjust.
(build_new_op): Adjust.
(build_new_function_call): Adjust.
(build_user_type_conversion_1): Adjust.
(USER_CONV_FN): Adjust.
* tree.c (build_expr_wrapper, build_expr_ptr_wrapper,
build_int_wrapper): New fns.
* sh.c (sh_expand_prologue, in !SH3E code): Don't push an extra
register for stdarg functions.
* sh.h (current_function_varargs): Declare.
(FUNCTION_ARG): Ignore NAMED for stdarg functions.
Jim Wilson [Thu, 23 Apr 1998 19:10:52 +0000 (19:10 +0000)]
Fix gcov mips switch table interaction bug reported to bug-gcc.
* profile.c (tablejump_entry_p): New function.
(branch_prob): Add code to recognize MIPS tablejump entry branch.
Use tablejump_entry_p in MIPS and HPPA tablejump checking code.
Mark Mitchell [Wed, 22 Apr 1998 21:02:01 +0000 (21:02 +0000)]
pt.c (tsubst): Decrease the template-level of TEMPLATE_TEMPLATE_PARMS.
* pt.c (tsubst): Decrease the template-level of
TEMPLATE_TEMPLATE_PARMS. Likewise for the DECL_INITIAL of a
TEMPLATE_PARM_INDEX.
(template_decl_level): New function.
(unify): Make sure to record unifications for template
parameters, even when the parameters exactly match the arguments.
Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and
TEMPLATE_TYPE_PARMS. Don't try to unify template parameters that
aren't from the level we're currently working on.
John Carr [Wed, 22 Apr 1998 12:57:04 +0000 (12:57 +0000)]
emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero if...
* emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero
if HOST_BITS_PER_WIDE_INT is larger than BITS_PER_WORD.
* final.c (split_double): Sign extend both halves of a split CONST_INT.
Fixes a problem compiling on sparcs where STRUCT_VALUE is defined in sparc.h to...
Fixes a problem compiling on sparcs where STRUCT_VALUE is defined in
sparc.h to use gen_rtx_MEM() and then evaluated in an #if directive in
sendmsg.c.
* objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done
for gen_rtx(MEM, ...).
final.c (shorten_branches, [...]): Move code to free label_align...
* final.c (shorten_branches, init_insn_lengths): Move code
to free label_align, uid_shuid, insn_lengths, insn_addresses
and uid_align from the former function into the latter one;
Add code to clear these variables.
* sh.h (label_align): Remove declaration.
Fix some problems that resulted in assmebler messages 'Error: pcrel too far'
Fix some problems that resulted in assmebler messages 'Error: pcrel too far'
* sh.c (find_barrier): Fix bug in ADDR_DIFF_VEC handling.
(split_branches): Call init_insn_lengths.
H.J. Lu [Mon, 20 Apr 1998 00:01:15 +0000 (00:01 +0000)]
reg-stack.c (subst_asm_stack_regs): Change to return the last new insn generated by this function.
* reg-stack.c (subst_asm_stack_regs): Change to return the last
new insn generated by this function.
(subst_stack_regs): Likewise.
(convert_regs): Record the last newly generated insn and use
it for change_stack () instead of INSN.