* cp-tree.h (ICS_USER_FLAG): Remove comment about obsolete flag.
(DECL_MEMBER_TEMPLATE_P): New macro.
(is_member_template): Remove.
(class_method_index_for_fn): New function.
* pt.c (build_over_call): Use DECL_MEMBER_TEMPLATE_P.
* class.c (finish_struct_methods): Remove out-of-date comment.
* decl.c (copy_fn_p): Use DECL_MBMER_TEMPLATE_P.
* decl2.c (check_classfn): Use DECL_MEMBER_TEMPLATE_P and
class_method_index_for_fn.
* pt.c (is_member_template): Remove.
(is_member_template_class): Likewise.
(optimize_specialization_lookup_p): New function.
(retrieve_specialization): Optimize lookups for members that are
not member templates.
(register_specialization): Adjust accordingly.
(build_template_decl): Add member_template_p parameter. Set
DECL_MEMBER_TEMPLATE_P.
(process_partial_specialization): Adjust call to
retrieve_specialization.
(push_template_decl_real): Determine whether the template is a
member template.
(lookup_template_class): Use retrieve_specialization.
(tsubst_decl): Adjust call to retrieve_specialization.
(tsubst_exception_specification): New function.
(tsubst): Use it.
(tsubst_copy): Use DECL_MEMBER_TEMPLATE_P.
(instantiate_template): Adjust call to retrieve_specialization.
(regenerate_decl_from_template): Do not actually generate a new
DECL.
(instantiate_decl): Adjust call to retrieve_specialization.
(class_method_index_for_fn): New method.
From-SVN: r88697
fortran/
* primary.c (match_boz_constant): Allow kind parameter suffixes.
Move standard warning further to the front.
testsuite/
* gfortran.fortran-torture/execute/intrinsic_mvbits.f90,
gfortran.dg/ishft.f90: Add more tests.
From-SVN: r88690
PR c++/17115
* tree-inline.c (expand_call_inline): Do not warn for functions
marked with attribute noinline.
PR c++/17115
* g++.dg/warn/Winline-4.C: New test.
From-SVN: r88678
PR target/17862
* config/sparc/sparc.c (sparc_output_mi_thunk): Set
current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
* config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
of 0 as 4th argument to pass_by_reference.
Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
From-SVN: r88674
PR rtl-optimization/17791
* loop-doloop.c (doloop_modify): Take number of iterations as
argument.
(doloop_optimize): Extend or shorten the number of iterations
when changing mode of counter register.
* loop-iv.c (lowpart_subreg): Export.
* rtl.h (lowpart_subreg): Declare.
From-SVN: r88668
PR middle-end/17835
* expmed.c (expand_sdiv_pow2): Force a stack adjustment
before tentatively building the conditional move sequence.
From-SVN: r88661
2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/17849
* gfortran.fortran-torture/compile/nested.f90: New test
2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/17849
* tree-nested.c (walk_stmt_info): Add changed field.
(convert_nonlocal_reference): Set changed to when we
change a decl to unnested decl.
<case ADDR_EXPR>: Instead of checking if the immediate part
of the ADDR_EXPR changed, check the field changed.
Use recompute_tree_invarant_for_addr_expr instead of unsetting
TREE_INVARIANT.
(convert_local_reference): Set changed to when we
change a decl to unnested decl.
<case ADDR_EXPR>: Instead of checking if the immediate part
of the ADDR_EXPR changed, check the field changed.
Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
From-SVN: r88650
* c-typeck.c (convert_arguments): Take expression for called
function rather than its name. Handle ObjC selectors directly
rather than relying on warn_for_assignment to do so. Call warning
directly rather than warn_for_assignment. Use %qE in diagnostics.
Say "argument" rather than "arg" in diagnostics.
(build_function_call): Update call to convert_arguments.
testsuite:
* gcc.dg/Wconversion-2.c, gcc.dg/func-args-1.c: New tests.
From-SVN: r88630
2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
PR debug/17787
* dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
ENUMs specially instead of just saying we do.
From-SVN: r88629
2004-10-06 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2004-10-06 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (compute_nest_using_fourier_motzkin): New
function.
(lambda_compute_auxillary_space): Split from here.
2004-10-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
* tree-flow.h: Add prototype.
* lambda-code.c (invariant_in_loop_and_outer_loops): Use
expr_invariant_in_loop.
From-SVN: r88622
2004-10-06 Benjamin Kosnik <bkoz@redhat.com>
Paolo Carlini <pcarlini@suse.de>
PR libstdc++/17780
* src/mt_allocator.cc (__pool<true>::_M_reserve_block): Revert
to old locking order.
Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
From-SVN: r88611
* config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
call ia64_function_arg_boundary.
* config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
* config/ia64/ia64.c (ia64_function_arg_boundary): New.
(ia64_function_arg_advance): Do not put 128 bit floats into
FP registers.
From-SVN: r88608