* errfn.c (cp_thing): Print buf as a string not as a printf format
to avoid problems with the operator%. Consequently, `%%' sequences
in format are copied as `%' in buf.
From-SVN: r22825
* pt.c (pop_tinst_level): Call extract_interface_info.
(instantiate_decl): Don't save and restore file position.
* decl.c (cp_finish_decl): Make statics in extern inlines and
templates common, if possible and the target doesn't support weak
symbols.
From-SVN: r22824
* decl.c (grokdeclarator): Remove redundant calls to
build_type_variant and some duplicated code.
* sig.c (build_signature_reference_type): Only take the type parm.
(build_signature_pointer_type): Likewise.
* tree.c (build_cplus_method_type): Adjust.
* cp-tree.h: Update.
From-SVN: r22820
* g++.old-deja/g++.pt/overload5.C: New test; initialize variable
with pointer to template function, for which no argument deduction
is possible
* g++.old-deja/g++.pt/overload4.C: New test; passing pointer to
specialization of template function as argument to template
function
* g++.old-deja/g++.other/access2.C: New test; Inner class
shouldn't have privileged access to Outer's names
From-SVN: r22818
* class.c (current_class_ptr, current_class_ref): Clarify
documentation.
* cvt.c (ocp_convert): Don't expect fold to remove all trivial
NOP type conversions.
* decl.c (decls_match): Use comptypes directly; ignore
qualifiers on the DECL.
(duplicate_decls): Remove qualifier checks on DECL.
(grokdeclarator): Make the type built up include top-level
qualifiers.
* decl2.c (do_dtors): Fix spelling error.
* error.c (dump_simple_decl): Don't look at qualifiers on the decl
when printing type information.
* init.c (build_new_1): Add documentation. Deal with the fact
that type of allocated memory now contains qualifiers.
* lex.c (is_global): Improve error-recovery.
* sig.c (build_member_function_pointer): Don't cast away const
on fields of sigtable_entry_type.
* tree.c (lvalue_type): Don't look at top-level qualifiers on
expressions.
* typeck.c (decay_conversion): Likewise.
(build_component_ref): Make sure the type of the COMPONENT_REF
contains top-level qualifiers, as appropriate. Improve
error-handling.
(build_indirect_ref): Simplify. Don't strip top-level qualifiers.
(build_array_ref): Likewise.
(build_unary_op): Improve error-recovery.
(unary_complex_lvalue): Make taking the address a bound member
function an error, not a sorry.
(build_conditional_expr): Look at the type qualifiers, not the
qualifiers on the expression itself.
From-SVN: r22802
* decl2.c (merge_functions): Remove duplicates.
* decl2.c: Add -f{no-,}implicit-inline-templates.
(lang_decode_option): Unset it if -frepo.
(import_export_decl): Check it.
* decl.c (lookup_name_real): Template parms also take precedence
over implicit typename. Only warn if yylex.
From-SVN: r22800
* g++.old-deja/g++.pt/friend34.C: New test; name injection of
friend template declared within template class conflicts with
nested class of the same name
* g++.old-deja/g++.other/badopt1.C: New test; post-increment
is ignored
* g++.old-deja/g++.other/decl1.C: New test; incorrect parsing of
object with direct initializer as function declaration
* g++.old-deja/g++.other/decl2.C: New test; duplicate initializers
* g++.old-deja/g++.other/null2.C: New test; conditional operator
involving const pointer and NULL produces incorrect result
* g++.old-deja/g++.other/typename1.C: New test; template-dependent
type name without `typename' should be rejected with -pedantic
From-SVN: r22770
�
* caller-save.c (insert_save_restore): Break this function up
into new functions insert_restore, insert_save and insert_one_insn.
All callers changed.
(insert_restore): New function, mostly broken out of
insert_save_restore.
(insert_save): Likewise.
(insert_one_insn): Likewise.
(restore_referenced_regs): New argument BLOCK. All callers changed.
(save_call_clobbered_regs): Don't keep track of basic block boundaries
in this function, do it in insert_one_insn instead.
From-SVN: r22754
0
* caller-save.c (insert_save_restore): Break this function up
into new functions insert_restore, insert_save and insert_one_insn.
All callers changed.
(insert_restore): New function, mostly broken out of
insert_save_restore.
(insert_save): Likewise.
(insert_one_insn): Likewise.
(restore_referenced_regs): New argument BLOCK. All callers changed.
(save_call_clobbered_regs): Don't keep track of basic block boundaries
in this function, do it in insert_one_insn instead.
From-SVN: r22753
* reload1.c (reload): Break out some more pieces into separate
functions.
(dump_needs): New function, broken out of reload.
(set_initial_elim_offsets): Likewise.
(init_elim_table): Likewise.
(update_eliminables): Likewise.
From-SVN: r22752