* 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.
From-SVN: r19418
* 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.
From-SVN: r19408
* 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.
From-SVN: r19405
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.
From-SVN: r19402
�
* 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.
From-SVN: r19401
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.
From-SVN: r19395
�
* 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.
From-SVN: r19394
* 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.
From-SVN: r19393
* 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.
From-SVN: r19391
* 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.
From-SVN: r19388
* 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.
From-SVN: r19378
* class.c (finish_struct): Set TREE_PRIVATE and TREE_PROTECTED for
the DECL_RESULTs of a member TEMPLATE_DECL, not just the
TEMPLATE_DECL.
From-SVN: r19376
* 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.
From-SVN: r19375