* parse.y (explicit_template_type): Remove TEMPLATE keyword.
(nested_name_specifier): And add it before this use.
(typename_sub0): And this use. Also add use without the keyword.
(typename_sub1): Likewise.
* pt.c (instantiate_class_template): Don't actually instantiate
anything if our type uses template parms.
From-SVN: r18358
* reorg.c (fill_slots_from_thread): Don't steal delay list from target
if condition code of jump conflicts with opposite_needed.
* reorg.c (fill_slots_from_thread): Mark resources referenced in
opposite_needed thread. Return delay_list even when cannot get
any more delay insns from end of subroutine.
* reorg.c (fill_slots_from_thread): New parameter, delay_list.
All callers changed.
From-SVN: r18348
* frame.c (start_fde_sort, fde_split, heapsort, fde_merge,
end_fde_sort): New functions for fast sorting of an FDE array.
(fde_insert): Simplified.
(add_fdes): Change argument list.
(frame_init): Use the new functions.
From-SVN: r18345
* parse.y (nested_name_specifier): Use explicit_template_type.
(typename_sub): Allow a template_type, an explicit_template_type,
or an implicit template type at the end.
* lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL.
* decl.c (make_typename_type): Handle template-id where the name
is a TEMPLATE_DECL.
* call.c (build_scoped_method_call): Handle member template
destructor call.
* pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member
destructor is represented by the type.
From-SVN: r18303
* pa.h (CONST_COSTS): When checking the CONST_DOUBLE enumerated
case, add parentheses to specify the proper order of precedence in
the if-statement.
From-SVN: r18291
* c-aux-info.c: Include string.h/strings.h.
* pa.c: Include stdlib.h.
(pa_combine_instructions): Prototype the function.
(pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise.
(reloc_needed): Add default case for enumeration switch.
(remove_useless_addtr_insns): Remove unused variable `all'.
(hppa_expand_prologue): Add explicit braces to avoid
ambiguous `else'.
(output_function_epilogue): Remove unused variable `i'.
(output_millicode_call): Remove unused variable `link'.
(shadd_constant_p, forward_branch_p): Make the function static.
(following_call): Explicitly declare to return int.
(pa_reorg): Declare as void.
(pa_combine_instructions): Declare as static void. Add
parentheses around && within ||.
* pa.h: Add prototypes for pa_reorg, symbolic_operand,
following_call, function_label_operand, lhs_lshift_cint_operand
and zdepi_cint_p.
* pa.md: Add parentheses around && within ||.
* cppalloc.c: Include stdlib.h.
* cpperror.c (cpp_print_containing_files): Remove unused variable
`i'. Fix format specifier in fprintf.
* cse.c (cse_around_loop): Add explicit braces to avoid
ambiguous `else'.
(delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0.
* expr.c (expand_expr): Add parentheses around && within ||.
* final.c (app_enable): Replace fprintf with fputs where there are
no format specifiers and no trailing argument after the string.
Eg, when printing ASM_APP_ON/ASM_APP_OFF.
(app_disable): Likewise.
(final_end_function): Likewise.
(final_scan_insn): Likewise. Remove unused variable `set'.
(profile_function): Wrap empty if-statement body in {} brackets.
* function.c: Include stdlib.h.
(pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD.
(reposition_prologue_and_epilogue_notes): Add parentheses
around assignment used as truth value.
* integrate.c (expand_inline_function): Wrap variable
`cc0_insn' in macro HAVE_cc0.
* jump.c (jump_optimize): Wrap variable `q' in macro
HAVE_cc0. Remove unused variable `prev1'.
* libgcc2.c (__bb_exit_trace_func): Add parentheses around &&
within ||. Fix format specifier in fprintf.
(__bb_init_prg): Add parentheses around assignment used as
truth value.
* local-alloc.c: Include stdlib.h.
(requires_inout): Add parentheses around assignment used
as truth value.
* loop.c (analyze_loop_iterations): Wrap prototype and definition
in macro HAVE_decrement_and_branch_on_count.
(insert_bct, instrument_loop_bct): Likewise.
(move_movables): Add parentheses around assignment used as
truth value.
(consec_sets_invariant_p): Likewise.
(maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0.
* objc/objc-act.c: Include stdlib.h.
(lookup_method_in_protocol_list): Wrap empty else-statement body
in braces.
(lookup_protocol_in_reflist): Likewise.
(objc_add_static_instance): Remove unused variables `decl_expr'
and `decl_spec'.
(get_objc_string_decl): Remove unused variable `decl'.
(generate_static_references): Remove unused variables `idecl' and
`instance'.
(check_protocols): Wrap empty else-statement body in braces.
* protoize.c: Include stdlib.h.
(substr): Add parentheses around assignment used as truth value.
(abspath): Likewise.
(shortpath): Likewise.
* regmove.c (fixup_match_1): Add parentheses around assignment
used as truth value.
* reload.c (push_secondary_reload): Remove unused variable `i'.
(find_reloads): Add parentheses around assignment used as truth
value.
* reload1.c: Include stdlib.h.
* rtl.h: Correct typo in prototype of offsettable_memref_p.
* stmt.c (add_case_node): Add parentheses around assignment used
as truth value.
(case_tree2list): Likewise.
* tree.c (valid_machine_attribute): Wrap variable `decl_attr_list'
in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable
`type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE.
(merge_attributes): Add explicit braces to avoid ambiguous
`else'.
* unroll.c (copy_loop_body): Wrap variable `cc0_insn' in
macro HAVE_cc0.
* varasm.c: Include stdlib.h.
From-SVN: r18290
I've backed out of including stat.h via system.h because stat.h can
define static functions (eg on x86 svr4 according to jfc@mit.edu)
causing code bloat.
* system.h: Remove sys/stat.h.
* gcc.c: Add sys/stat.h.
From-SVN: r18289
* pt.c (get_class_bindings): Add outer_args parm.
(most_specialized_class): Likewise.
(instantiate_class_template): Pass it.
(more_specialized_class): Likewise.
(lookup_template_class): Get context from template if none
was specified.
(finish_member_template_decl): Don't do anything with a
partial specialization.
* decl2.c (check_member_template): Use IS_AGGR_TYPE instead of
AGGREGATE_TYPE_P.
* class.c (finish_struct): Member class templates have already been
checked for name clashes.
* decl.c (pushdecl_with_scope): Handle pushing at class level.
From-SVN: r18285
* pt.c (tsubst, TEMPLATE_DECL): Support member class templates.
(tsubst, *_PARM): Support multiple levels of template classes.
(instantiate_class_template): Look up the pattern from the
original template.
(lookup_template_class): Handle getting a template for d1.
(push_template_decl): Correct setting of 'primary'.
(reduce_template_parm_level): Add 'levels' parm.
(finish_member_template_decl): Support member class templates.
(template_class_depth): Handle multiple levels.
* parse.y (component_decl_1, fn.def2): Remove member template case.
(component_decl): Add member template cases.
* decl2.c (check_member_template): We now handle member template
classes.
* decl.c (pushtag): Handle member templates.
* method.c (do_inline_function_hair): Don't touch
IDENTIFIER_GLOBAL_VALUE.
* init.c (build_offset_ref): If name isn't an identifier, just
return it.
* spew.c (yylex): Handle PTYPENAME like TYPENAME.
* typeck.c (get_delta_difference): Do adjust for conversions to
and from virtual base.
From-SVN: r18280
* i386.c (struct machine_function): Add new fields for PIC stuff.
(save_386_machine_status): Fix argument to xmalloc. Save pic_label_rtx
and pic_label_name.
(restore_386_machine_status): Corresponding changes.
(clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name.
From-SVN: r18237