Remove outermost loop parameter.
[official-gcc/graphite-test-results.git] / gcc / cp / ChangeLog
blobd02bff462ff041dc2caa1c9e88eeb129091fe6da
1 2010-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
3         * parser.c (cp_parser_mem_initializer_list): Change error text.
5 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
7         * cp-objcp-common.c (shadowed_var_for_decl): Change into
8         tree_decl_map hashtab from tree_map.
9         (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
10         (init_shadowed_var_for_decl): Adjust initialization.
12         PR c++/44361
13         * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
14         instead of calling mark_exp_read only when not an assignment.
16         PR debug/44367
17         * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
18         DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
19         Set DECL_VALUE_EXPR on var.
21 2010-06-02  Jason Merrill  <jason@redhat.com>
23         * error.c (dump_type): Improve typedef handling.
25         PR c++/9726
26         PR c++/23594
27         PR c++/44333
28         * name-lookup.c (same_entity_p): New.
29         (ambiguous_decl): Multiple declarations of the same entity
30         are not ambiguous.
32 2010-06-01  Jason Merrill  <jason@redhat.com>
34         DR 990
35         * call.c (add_list_candidates): Prefer the default constructor.
36         (build_aggr_conv): Treat missing initializers like { }.
37         * typeck2.c (process_init_constructor_record): Likewise.
38         * init.c (expand_default_init): Use digest_init for
39         direct aggregate initialization, too.
41         * call.c (add_list_candidates): Split out...
42         (build_user_type_conversion_1): ...from here.
43         (build_new_method_call): And here.
44         (implicit_conversion): Propagate LOOKUP_NO_NARROWING.
46         PR c++/44358
47         * call.c (build_list_conv): Set list-initialization flags properly.
49 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
51         * typeck2.c (build_x_arrow): Make types_memoized a VEC.
53 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
54             Matthew Gingell  <gingell@adacore.com>
56         * Make-lang.in (CXX_C_OBJS): Add c-ada-spec.o.
57         * decl2.c: Include langhooks.h and c-ada-spec.h.
58         (cpp_check, collect_source_refs, collect_ada_namespace,
59         collect_all_refs): New functions.
60         (cp_write_global_declarations): Add handling of -fdump-ada-spec.
61         * lang-specs.h: Ditto.
63 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
65         * cp-tree.h (cp_build_function_call_nary): Declare.
66         * typeck.c (cp_build_function_call_nary): Define.
67         * decl.c (register_dtor_fn): Use it instead of
68         cp_build_function_call.
69         (cxx_maybe_build_cleanup): Likewise.
70         * decl2.c (generate_ctor_or_dtor_function): Likewise.
71         * except.c (do_get_exception_ptr): Likewise.
72         (do_begin_catch): Likewise.
73         (do_allocate_exception): Likewise.
74         (do_free_exception): Likewise.
75         (build_throw): Likewise.  Use cp_build_function_call_vec instead
76         of cp_build_function_call.
77         (do_end_catch): Likewise.
79 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
81         * cp-tree.h (struct cp_decl_specifier_seq): Move type_location field up.
82         (struct cp_declarator): Move id_loc field up.
84 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
86         * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove.  Require that
87         this file is included before c-common.h.  Define GCC_DIAG_STYLE
88         before including diagnostic-core.h and toplev.h.
89         (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
90         * pt.c: Include cp-tree.h before c-common.h.
92 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
94         * tree.c (c_register_addr_space): Add stub.
96 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
98         * g++spec.c (lang_specific_driver): Use fatal_error instead of
99         fatal.
101 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
103         Revert fix of PR c++/44188
104         * cp-tree.h (typedef_variant_p): Revert moving this declaration to
105         gcc/tree.h.
106         * tree.c (typedef_variant_p): Revert moving this definition to
107         gcc/tree.c.
108         * decl.c (grokdeclarator): Revert naming typedef handling.
110 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
112         * call.c: Include diagnostic-core.h instead of diagnostic.h.
113         * cp-lang.c: Don't include diagnostic.h
114         * name-lookup.c: Include diagnostic-core.h instead of
115         diagnostic.h.
116         (cp_emit_debug_info_for_using): Use seen_error.
117         * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
118         * parser.c: Include diagnostic-core.h instead of diagnostic.h.
119         * pt.c (iterative_hash_template_arg): Use seen_error.
120         * repo.c: Include diagnostic-core.h instead of diagnostic.h.
121         * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
122         * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
123         cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
124         dependencies.
126 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
128         PR c++/44188
129         * cp-tree.h (typedef_variant_p): Move this declaration to
130         gcc/tree.h.
131         * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
132         * decl.c (grokdeclarator): Do not rename debug info of an
133         anonymous tagged type named by a typedef.
135 2010-05-27  Jason Merrill  <jason@redhat.com>
137         PR c++/43555
138         * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
139         anonymous VLA size.
141 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
143         PR bootstrap/44287
144         * rtti.c (emit_support_tinfos): Check for NULL_TREE.
145         * class.c (layout_class_type): Likewise.
146         * decl.c (finish_enum): Likewise.
147         * mangle.c (write_builitin_type): Likewise.
149 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
151         * cp-tree.h (cp_decl_specifier_seq): Add new bifield
152         explicit_int128_p.
153         * decl.c (grokdeclarator): Handle __int128.
154         * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
155         (cp_parser_simple_type_specifier): Likewise.
156         * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
157         * typeck.c (cp_common_type): Handle __int128.
158         * mangle.c (integer_type_codes): Add itk_int128 and
159         itk_unsigned_int128.
161 2010-05-26  Jason Merrill  <jason@redhat.com>
163         PR c++/43382
164         * pt.c (tsubst_pack_expansion): Don't get confused by recursive
165         unification.
167 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
169         * cp-lang.c: Do not include expr.h.
171 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
173         * decl.c: Do not include rtl.h
174         * semantics.c: Likewise.
176 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
178         * cp-tree.h: Do not include splay-tree.h.
179         (struct prtmem_cst): Remove unused field and false comment.
180         * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
181         * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
182         * init.c: Do not include rtl.h and expr.h.
183         * class.c: Do not include rtl.h.  Include splay-tree.h.
184         (build_clone): Use plain NULL instead of NULL_RTX.
185         * decl.c: Do not include expr.h.  Explain why rtl.h has to be
186         included.  Include splay-tree.h.
187         * method.c: Do not include rtl.h and expr.h.
188         (use_thunk): Use plain NULL instead of NULL_RTX.
189         * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
190         * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
191         and target.h.  Include splay-tree.h.
192         * expr.c: Do not include rtl.h and expr.h.
193         * pt.c: Do not include obstack.h and rtl.h.
194         (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
195         (tsubst_decl): Likewise.
196         (instantiate_decl): Likewise.
197         * semantics.c: Do not include exprt.h and debug.h.  Explain why
198         rtl.h has to be included.
199         * decl2.c: Do not include rtl.h and expr.h.  Include splay-tree.h.
200         * call.c: Do not include rtl.h and expr.h.
201         * search.c: Do not include obstack.h and rtl.h.
202         * friend.c: Do not include rtl.h and expr.h.
203         * Make-lang.in: Update dependencies.
205 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
207         PR c++/18249
208         * parser.c (non_integral_constant): Add NIC_NONE.
209         (required_token): Add RT_NONE.
210         (cp_parser_unary_expression): Initialize non_constant_p
211         to NIC_NONE.
212         (cp_parser_asm_definition): Initialize missing to RT_NONE.
213         (cp_parser_primary_expression, cp_parser_postfix_expression,
214         cp_parser_cast_expression, cp_parser_binary_expression,
215         cp_parser_functional_cast): Fix formatting.
217 2010-05-25  Shujing Zhao  <pearly.zhao@oracle.com>
218         
219         PR c++/18249
220         * parser.c: Remove inclusion of dyn-string.h.
221         (non_integral_constant): New enum.
222         (name_lookup_error): New enum.
223         (required_token): New enum.
224         (cp_parser_required_error): New function.
225         (cp_parser_require): Change the type of variable token_desc to
226         required_token and use cp_parser_required_error.
227         (cp_parser_require_keyword): Likewise.
228         (cp_parser_error): Use gmsgid as parameter.
229         (cp_parser_name_lookup_error): Change the type of variable desired to
230         name_lookup_error and put the diagnostic in the full sentences. Change
231         caller.
232         (cp_parser_non_integral_constant_expression): Change the type of the
233         variable thing to non_integral_constant and put the diagnostics in
234         full sentences. Change caller.
236 2010-05-24  Eric Botcazou  <ebotcazou@adacore.com>
238         PR middle-end/44100
239         * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
241 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
243         * error.c (cp_diagnostic_starter): Update call to
244         diagnostic_build_prefix.
245         (cp_print_error_function,
246         print_instantiation_partial_context_line): Check show_column flag
247         in context.
249 2010-05-24  Jason Merrill  <jason@redhat.com>
251         PR c++/41510
252         * decl.c (check_initializer): Don't wrap an init-list in a
253         TREE_LIST.
254         * init.c (build_aggr_init): Don't assume copy-initialization if
255         init has CONSTRUCTOR_IS_DIRECT_INIT.
256         * call.c (build_new_method_call): Sanity check.
258 2010-05-24  Nathan Froyd  <froydnj@codesourcery.com>
260         * rtti.c (tinfo_base_init): Use build_constructor instead of
261         build_constructor_from_list.  Don't cons a tree node for
262         returning.
263         (generic_initializer): Use build_constructor_single instead of
264         build_constructor_from_list.
265         (ptr_initializer): Use build_constructor instead of
266         build_constructor_from_list
267         (ptm_initializer): Likewise.
268         (class_initializer): Likewise.  Take varargs instead of TRAIL.
269         (get_pseudo_ti_init): Adjust calls to class_initializer.  Use
270         build_constructor instead of build_constructor_from_list.
272 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
274         * semantics.c: Include bitmap.h.
275         * Make-lang.in: Update dependencies.
277 2010-05-22  Jan Hubicka  <jh@suse.cz>
279         * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
280         comdat vtables.
281         (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
283 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
285         * cxx-pretty-print.c: Correct merge error.
287 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
289         * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
290         (cp_print_error_function): Use diagnostic_abstract_origin macro.
291         (cp_printer): Handle %K here using percent_K_format.
292         * cxx-pretty-print.c: Include tree-pretty-print.h.
293         * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
294         dependencies.
296 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
298         * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
299         Clean up redundant includes.
301 2010-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
303         PR c++/30298
304         * decl.c (xref_basetypes): Return false in case of ill-formed
305         redefinition.
307 2010-05-19  Jason Merrill  <jason@redhat.com>
309         * call.c (reference_binding): Use cp_build_qualified_type_real
310         and cp_type_quals consistently.
311         (add_function_candidate): Likewise.
312         (build_conditional_expr): Likewise.
313         (convert_like_real): Likewise.
314         (type_passed_as): Likewise.
315         * class.c (add_method): Likewise.
316         (same_signature_p): Likewise.
317         (layout_class_type): Likewise.
318         * decl.c (cxx_init_decl_processing): Likewise.
319         (cp_fname_init): Likewise.
320         (grokdeclarator): Likewise.
321         * decl2.c (cp_reconstruct_complex_type): Likewise.
322         * init.c (build_new_1): Likewise.
323         * method.c (do_build_copy_constructor): Likewise.
324         (implicitly_declare_fn): Likewise.
325         * pt.c (tsubst_aggr_type): Likewise.
326         (tsubst): Likewise.
327         * rtti.c (init_rtti_processing): Likewise.
328         (build_headof): Likewise.
329         (build_dynamic_cast_1): Likewise.
330         (tinfo_base_init): Likewise.
331         (emit_support_tinfos): Likewise.
332         * semantics.c (capture_decltype): Likewise.
333         * tree.c (cv_unqualified): Likewise.
334         * typeck.c (composite_pointer_type): Likewise.
335         (string_conv_p): Likewise.
337         * mangle.c (write_CV_qualifiers_for_type): Tweak.
339         * call.c (initialize_reference): Use CP_TYPE_CONST_P.
340         * decl.c (start_decl): Likewise.
341         * semantics.c (finish_compound_literal): Likewise.
342         * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
343         (cp_type_readonly): Remove.
344         * cp-tree.h: Remove declaration.
346         * typeck.c (merge_types): Preserve memfn quals.
348         * decl.c (grokdeclarator): Don't check quals on fn type.
349         * typeck.c (cp_apply_type_quals_to_decl): Likewise.
350         * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
352         PR c++/44193
353         * typeck.c (type_memfn_quals): New fn.
354         (apply_memfn_quals): New fn.
355         (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
356         (cp_type_readonly): Use cp_type_quals.
357         * cp-tree.h: Add declarations.
358         * tree.c (cp_build_qualified_type_real): Don't set, but do
359         preserve, quals on FUNCTION_TYPE.
360         (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
361         * decl.c (build_ptrmem_type): Likewise.
362         (grokdeclarator): Likewise.
363         (static_fn_type): Likewise.
364         * decl2.c (change_return_type): Likewise.
365         (cp_reconstruct_complex_type): Likewise.
366         * pt.c (tsubst_function_type): Likewise.
367         (unify): Likewise.
368         (tsubst): Likewise.  Drop special FUNCTION_TYPE substitution code.
370 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
372         * tree.c (build_min_non_dep_call_vec): Update comment.
374 2010-05-17  Jason Merrill  <jason@redhat.com>
376         * call.c (struct z_candidate): Add explicit_targs field.
377         (add_template_candidate_real): Set it.
378         (build_over_call): Use it to control init-list warning.
380         PR c++/44157
381         * call.c (build_over_call): Limit init-list deduction warning to
382         cases where the argument is actually an init-list.
384         PR c++/44158
385         * call.c (build_over_call): Don't do bitwise copy for move ctor.
387 2010-05-17  Dodji Seketeli  <dodji@redhat.com>
388             Jason Merrill  <jason@redhat.com>
390         PR c++/44108
391         * decl.c (compute_array_index_type): Call mark_rvalue_use.
393 2010-05-15  Jason Merrill  <jason@redhat.com>
395         * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
396         * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
397         TYPE_NOEXCEPT_P.
398         (finish_eh_spec_block): Adjust.
400 2010-05-15  Jakub Jelinek  <jakub@redhat.com>
402         PR c++/44148
403         * pt.c (tsubst): Unshare template argument.
405 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
407         * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
408         * Make-lang.in: Fix dependencies accordingly.
410 2010-05-14  Jason Merrill  <jason@redhat.com>
412         C++ DR 475
413         * except.c (build_throw): Simplify, adjust for DR 475.
415         PR c++/44127
416         * except.c (dtor_nothrow): Return nonzero for type with
417         trivial destructor.
419         PR c++/44127
420         * cp-gimplify.c (gimplify_must_not_throw_expr): Use
421         gimple_build_eh_must_not_throw.
423 2010-05-14  Martin Jambor  <mjambor@suse.cz>
425         * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
426         and define.
428 2010-05-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
430         * call.c (build_new_method_call): Change warning text.
431         * typeck2.c (build_functional_cast): Change error text.
433 2010-05-14  Shujing Zhao  <pearly.zhao@oracle.com>
435         PR c++/30566
436         * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
437         shadowing the outer parameter or variables by the declaration of
438         nested function in nested structure or class. Warn the shadowing by
439         the declaration of nested lambda expression.
441 2010-05-13  Jason Merrill  <jason@redhat.com>
443         * typeck.c (cp_build_array_ref): Factor out from...
444         (build_array_ref): ...here.  Drop complain parm.
445         (build_new_op): Adjust.
446         * class.c (build_vtbl_ref_1): Adjust.
447         * decl2.c (grok_array_decl): Adjust.
448         * cp-tree.h: Adjust prototypes.
450 2010-05-13  Jan Hubicka  <jh@suse.cz>
452         * decl.c (cp_finish_decl): Do not worry about used attribute.
454 2010-05-12  Jason Merrill  <jason@redhat.com>
456         * typeck.c (build_array_ref): Take complain parm.
457         * cp-tree.h: Add it to prototype.
458         * call.c (build_new_op): Pass it.
459         * class.c (build_vtbl_ref): Pass it.
460         * decl2.c (grok_array_decl): Pass it.
462         PR bootstrap/44048
463         PR target/44099
464         * cp-tree.def (NULLPTR_TYPE): Remove.
465         * cp-tree.h (NULLPTR_TYPE_P): New.
466         (SCALAR_TYPE_P): Use it.
467         (nullptr_type_node): New.
468         (cp_tree_index): Add CPTI_NULLPTR_TYPE.
469         * decl.c (cxx_init_decl_processing): Call record_builtin_type on
470         nullptr_type_node.
471         * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
472         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
473         * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
474         * mangle.c (write_type): Likewise.
475         * name-lookup.c (arg_assoc_type): Likewise.
476         * typeck.c (build_reinterpret_cast_1): Likewise.
477         * rtti.c (typeinfo_in_lib_p): Likewise.
478         (emit_support_tinfos): Remove local nullptr_type_node.
480         * cp-tree.h (UNKNOWN_TYPE): Remove.
481         * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
482         * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
483         * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
484         * class.c (instantiate_type): Check unknown_type_node rather than
485         UNKNOWN_TYPE.
486         * name-lookup.c (maybe_push_decl): Likewise.
487         * rtti.c (get_tinfo_decl_dynamic): Likewise.
488         (get_typeid): Likewise.
489         * semantics.c (finish_offsetof): Likewise.
491         PR c++/20669
492         * call.c (add_template_candidate_real): If deduction fails, still
493         add the template as a non-viable candidate.
494         (equal_functions): Handle template candidates.
495         (print_z_candidate): Likewise.
496         (print_z_candidates): Likewise.
497         (build_new_function_call): Likewise.
499         * cp-tree.h (LOOKUP_LIST_ONLY): New.
500         * call.c (add_candidates): Enforce it.
501         (build_new_method_call): Try non-list ctor if no viable list ctor.
502         (build_user_type_conversion_1): Likewise.
504         * call.c (add_candidates): Distinguish between type(x) and
505         x.operator type().
506         (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
507         (build_new_method_call): Give better error for conversion op.
509         * call.c (add_candidates): Add first_arg and return_type parms.
510         Add special constructor/conversion op handling.
511         (convert_class_to_reference): Use it.
512         (build_user_type_conversion_1): Likewise.
513         (build_op_call): Likewise.
514         (build_new_method_call): Likewise.
515         (build_new_op): Adjust.
516         (perform_overload_resolution): Adjust.
518 2010-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
520         PR c++/34272
521         PR c++/43630
522         PR c++/34491
523         * pt.c (process_partial_specialization): Return error_mark_node
524         in case of unused template parameters in partial specialization.
526 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
528         PR c++/44062
529         * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
530         * cvt.c (convert_to_void): ... but here.  If expr is a COMPOUND_EXPR,
531         look at its second operand.
533 2010-05-10  Jason Merrill  <jason@redhat.com>
535         PR c++/44017
536         * semantics.c (baselink_for_fns): Revert earlier change.
538         PR c++/44045
539         * typeck.c (cp_build_modify_expr): Complain about assignment to
540         array from init list.
542 2010-05-10  Fabien Chêne  <fabien.chene@gmail.com>
544         PR c++/43719
545         * decl.c (check_initializer): strip array type before checking for
546         uninitialized const or ref members.
548 2010-05-07  Fabien Chêne  <fabien.chene@gmail.com>
550         PR c++/43951
551         * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
552         error count. Emit errors only if compain is true.
553         (build_new_1): Do not return error_mark_node if
554         diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
555         errors. Delay the check for user-provided constructor.
556         (perform_member_init): Adjust.
557         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
558         prototype.
560 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
561             Jason Merrill  <jason@redhat.com>
563         Add support for C++0x nullptr.
564         * cp-tree.def: Add NULLPTR_TYPE.
565         * cp-tree.h: Add nullptr_node.
566         (cp_tree_index): Add CPTI_NULLPTR.
567         (SCALAR_TYPE_P): Add NULLPTR_TYPE.
568         * call.c (null_ptr_cst_p): Handle nullptr.
569         (standard_conversion): Likewise.
570         (convert_arg_to_ellipsis): Likewise.
571         * mangle.c (write_type): Likewise.
572         * name-lookup.c (arg_assoc_type): Likewise.
573         * parser.c (cp_parser_primary_expression): Likewise.
574         * typeck.c (cp_build_binary_op): Likewise.
575         (build_reinterpret_cast_1): Likewise.
576         * error.c (dump_type): Likewise.
577         (dump_type_prefix, dump_type_suffix): Likewise.
578         * decl.c (cxx_init_decl_processing): Likewise.
579         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
580         * cvt.c (ocp_convert): Likewise.
581         * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
582         nullptr_t tinfo in libsupc++.
584 2010-05-06  Jason Merrill  <jason@redhat.com>
586         * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
588 2010-04-22  Jakub Jelinek <jakub@redhat.com>
589             Dodji Seketeli <dodji@redhat.com>
591         PR c/18624
592         * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
593         Declare ...
594         * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
595         * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
596         (decay_conversion, perform_integral_promotions): Call rvalue_use.
597         (cp_build_unary_op): Call lvalue_use.
598         * decl.c (unused_but_set_errorcount): New variable.
599         (poplevel): Issue -Wunused-but-set-variable diagnostics.
600         (duplicate_decls): Merge DECL_READ_P flags.
601         (start_cleanup_fn): Set DECL_READ_P flag.
602         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
603         * tree.c (rvalue): Call rvalue_use.
604         * pt.c (convert_nontype_argument): Likewise.
605         * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
606         finish_decltype_type): Likewise.
607         * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
608         (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
609         or rvalue_use depending on the expr.
610         * init.c (build_new, build_delete): Likewise.
611         * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
613 2010-05-05  Jason Merrill  <jason@redhat.com>
615         PR c++/43787
616         * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
617         * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
619 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
621         PR c++/43028
622         * pt.c (unify): Check each elt for error_mark_node.
624 2010-05-04  Jason Merrill  <jason@redhat.com>
626         PR c++/38064
627         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
629 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
631         PR c++/43705
632         * call.c (build_new_method_call): Return error_mark_node if fns is
633         NULL_TREE.
635 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
637         PR c++/43953
638         * pt.c (most_specialized_class): Pretend we are processing
639         a template decl during the call to coerce_template_parms.
641 2010-05-03  Jason Merrill  <jason@redhat.com>
643         PR c++/42810
644         PR c++/43680
645         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
646         from the selected underlying type unless -fstrict-enums.  Set
647         ENUM_UNDERLYING_TYPE to have the restricted range.
648         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
649         * class.c (check_bitfield_decl): Likewise.
651 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
653         PR c++/43951
654         * init.c (build_new_1): Revert the accidental checkin in
655         revision 158918.
657 2010-04-30  Jason Merrill  <jason@redhat.com>
659         PR c++/43868
660         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
661         (pp_cxx_type_specifier_seq): ...here.
663 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
665         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
666         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
668 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
670         PR c++/43779
671         * typeck.c (warn_args_num): New function.
672         (convert_arguments): Use warn_args_num to print the diagnostic
673         messages. 
675 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
677         PR c++/43890
678         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
679         user-provided constructor while recursing.
681 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
683         PR c++/9335
684         * error.c (print_instantiation_partial_context_line): Handle
685         recursive instantiation.
686         (print_instantiation_partial_context): Likewise.
688 2010-04-27  Jason Merrill  <jason@redhat.com>
690         * init.c (perform_member_init): Check CLASS_TYPE_P.
692 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
694         PR c++/29043
695         * init.c (perform_member_init): check for uninitialized const or
696         reference members, including array types.
698 2010-04-24  Jason Merrill  <jason@redhat.com>
700         * tree.c (get_fns): Split out from get_first_fn.
701         * cp-tree.h: Declare it.
702         * search.c (shared_member_p): Use it.
703         * semantics.c (finish_qualified_id_expr): Simplify.
704         (finish_id_expression): Simplify.
706         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
707         whenever object is NULL_TREE.  Don't do 'this' capture here.
708         (finish_qualified_id_expr): Pass NULL_TREE.
709         (finish_id_expression): Likewise.
710         (lambda_expr_this_capture): Likewise.
712         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
713         rather than checking current_class_ref directly.
714         (finish_call_expr): Likewise.
716         PR c++/43856
717         * name-lookup.c (qualify_lookup): Disqualify lambda op().
718         * class.c (current_nonlambda_class_type): New fn.
719         * semantics.c (nonlambda_method_basetype): New.
720         * cp-tree.h: Declare them.
721         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
723         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
725         PR c++/43875
726         * semantics.c (lambda_return_type): Complain about
727         braced-init-list.
729         PR c++/43790
730         * tree.c (cv_unqualified): Handle error_mark_node.
732         PR c++/41468
733         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
734         if we don't want errors.
736         PR c++/41468
737         * class.c (convert_to_base): Add complain parameter.  Pass
738         ba_quiet to lookup_base if we don't want errors.
739         (build_vfield_ref): Pass complain to convert_to_base.
740         * call.c (convert_like_real): Likewise.
741         (initialize_reference): Likewise.
742         (perform_direct_initialization_if_possible): Pass complain to
743         convert_like_real.
744         * cp-tree.h: Adjust.
746 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
747             Jason Merrill  <jason@redhat.com>
749         PR c++/42844
750         * decl.c (check_for_uninitialized_const_var): Handle classes that need
751         constructing, too.
752         (check_initializer): Call it for classes that need constructing, too.
753         * class.c (in_class_defaulted_default_constructor): New.
754         * cp-tree.h: Declare it.
756 2010-04-20  Jason Merrill  <jason@redhat.com>
758         PR c++/9335
759         * init.c (constant_value_1): Treat error_mark_node as a constant
760         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
761         * cvt.c (ocp_convert): Handle getting error_mark_node from
762         integral_constant_value.
763         * decl.c (compute_array_index_type): Likewise.
765 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
767         PR c++/43800
768         PR c++/43704
769         * typeck.c (incompatible_dependent_types_p): If one of the
770         compared types if not a typedef then honour their main variant
771         equivalence.
773 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
775         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
777 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
779         PR c++/43704
780         * typeck.c (structural_comptypes): Test dependent typedefs
781         incompatibility before testing for their main variant based
782         equivalence.
784 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
786         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
787         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
789 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
791         * decl.c (cxx_init_decl_processing): Remove second argument in call to
792         build_common_tree_nodes.
794 2010-04-14  Jason Merrill  <jason@redhat.com>
796         PR c++/36625
797         * parser.c (cp_parser_parenthesized_expression_list): Change
798         is_attribute_list parm to int to indicate whether or not to
799         handle initial identifier specially.
800         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
802 2010-04-13  Jason Merrill  <jason@redhat.com>
804         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
805         CLASS_TYPE_P.
806         * parser.c (cp_parser_lambda_expression): Complain about lambda in
807         unevaluated context.
808         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
810 2010-04-12  Jason Merrill  <jason@redhat.com>
812         PR c++/43641
813         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
814         return value directly.
816         * call.c (type_decays_to): Call cv_unqualified for non-class type.
818 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
820         PR c++/25811
821         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
822         * init.c (build_new_1): Check for uninitialized const members and
823         uninitialized reference members, when using new without
824         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
825         (diagnose_uninitialized_cst_or_ref_member): Define, call
826         diagnose_uninitialized_cst_or_ref_member_1.
827         (diagnose_uninitialized_cst_or_ref_member_1): New function.
829 2010-04-12  Richard Guenther  <rguenther@suse.de>
831         PR c++/43611
832         * semantics.c (expand_or_defer_fn_1): Do not keep extern
833         template inline functions.
835 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
837         PR c++/28584
838         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
839         pointer type.
841 2010-04-07  Jason Merrill  <jason@redhat.com>
843         PR c++/43016
844         * decl.c (start_preparsed_function): Do defer nested functions.
846         PR c++/11094, DR 408
847         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
848         * decl2.c (finish_static_data_member_decl): Set it.
849         * decl.c (duplicate_decls): Propagate it.
850         * pt.c (tsubst_decl): Don't substitute the domain of an array
851         VAR_DECL if it's set.
852         (regenerate_decl_from_template): Substitute it here.
853         (type_dependent_expression_p): Return true if it's set.
854         * semantics.c (finish_decltype_type): Instantiate such a variable.
855         * typeck.c (cxx_sizeof_expr): Likewise.
856         (strip_array_domain): New.
858         PR c++/43145
859         * name-lookup.c (current_decl_namespace): Non-static.
860         (pop_nested_namespace): Sanity check.
861         * cp-tree.h: Declare current_decl_namespace.
862         * decl.c (grokvardecl): Use it instead of current_namespace.
863         (grokfndecl): Likewise.
865         PR c++/38392
866         * pt.c (tsubst_friend_function): Instatiate a friend that has already
867         been used.
869         * pt.c (print_template_statistics): New.
870         * cp-tree.h: Declare it.
871         * tree.c (cxx_print_statistics): Call it.
873         PR c++/41970
874         * decl.c (grokvardecl): Tweak warning message.
875         (grokfndecl): Likewise.
877 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
879         PR c++/42697
880         *pt.c (tsubst_decl): Get the arguments of a specialization from
881         the specialization template, not from the most general template.
883 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
885         PR c++/40239
886         * typeck2.c (process_init_constructor_record):
887         value-initialize members that are are not explicitely
888         initialized.
890 2010-04-07  Jie Zhang  <jie@codesourcery.com>
892         PR c++/42556
893         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
894         when all of its elements are non-constant and have been split out.
896 2010-04-06  Taras Glek  <taras@mozilla.com>
897             Jason Merrill  <jason@redhat.com>
899         * parser.c (cp_parser_class_specifier): Set class location to that
900         of IDENTIFIER_NODE instead of '{' when possible.
901         * semantics.c (begin_class_definition): Do not overide locations
902         with less precise ones.
904 2010-04-06  Jason Merrill  <jason@redhat.com>
906         PR c++/43648
907         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
909         PR c++/43621
910         * pt.c (maybe_update_decl_type): Check the return value from
911         push_scope.
913 2010-04-01  Jason Merrill  <jason@redhat.com>
915         * decl.c (next_initializable_field): No longer static.
916         * cp-tree.h: Declare it.
917         * call.c (build_aggr_conv): Fail if there are more initializers
918         than initializable fields.
920         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
921         instead of void_zero_node.
923 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
925         PR c++/43558
926         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
927         * pt.c (end_template_parm_list): Store sibling template parms of
928         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
929         (push_template_decl_real): Don't store the containing template decl
930         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
931         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
932         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
933         Simplify the logic.
935 2010-03-30  Jason Merrill  <jason@redhat.com>
937         PR c++/43076
938         * pt.c (push_template_decl_real): Deal better with running out of
939         scopes before running out of template parms.
941         PR c++/41185
942         PR c++/41786
943         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
944         function parameter context.  Don't print an error if parsing
945         tentatively.
947         PR c++/43559
948         * pt.c (more_specialized_fn): Don't control cv-qualifier check
949         with same_type_p.
951 2010-03-26  Jason Merrill  <jason@redhat.com>
953         PR c++/43509
954         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
955         c++0x mode, but not other type-names.
957 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
959         PR c++/43327
960         * pt.c (add_to_template_args): Support NULL ARGS;
961         (most_specialized_class): call coerce_template_parms on
962         template arguments passed to get_class_bindings. Use
963         add_to_template_args.
964         (unify): Handle VAR_DECLs.
966 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
968         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
969         into int.
970         * pt.c (get_template_parms_at_level): Adjust.
972 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
974         PR c++/43206
975         * cp-tree.h (get_template_parms_at_level): Declare ...
976         * pt.c (get_template_parms_at_level): ... new function.
977         * typeck.c (get_template_parms_of_dependent_type): If a template
978         type parm's DECL_CONTEXT isn't yet set, get its siblings from
979         current_template_parms. Use get_template_parms_at_level. Remove
980         useless test.
981         (incompatible_dependent_types_p): If we get empty parms from just one
982         of the template type parms we are comparing then the template parms are
983         incompatible.
985 2010-03-24  Jason Merrill  <jason@redhat.com>
987         PR c++/43502
988         * parser.c (make_declarator): Initialize id_loc.
989         (cp_parser_lambda_declarator_opt): And set it.
991 2010-03-23  Jason Merrill  <jason@redhat.com>
993         Make lambda conversion op and op() non-static.
994         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
995         Also add the thunk function returned by the conversion op.
996         Mark the conversion deleted if the op() is variadic.
997         * decl2.c (mark_used): Give helpful message about deleted conversion.
998         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
999         * semantics.c (finish_this_expr): Adjust.
1000         * mangle.c (write_closure_type_name): Adjust.
1001         * decl.c (grok_op_properties): Don't allow it.
1002         * call.c (build_user_type_conversion_1): No static conversion ops.
1003         (build_op_call): Or op().
1005         * decl2.c (change_return_type): Fix 'this' quals.
1007 2010-03-22  Jason Merrill  <jason@redhat.com>
1009         PR c++/43333
1010         * tree.c (pod_type_p): Use old meaning in C++98 mode.
1012         PR c++/43281
1013         * pt.c (contains_auto_r): New fn.
1014         (do_auto_deduction): Use it.
1015         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
1017 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
1019         PR c++/43081:
1020         * decl2.c (grokfield): Handle invalid initializers for member
1021         functions.
1023 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
1025         PR c++/43375
1026         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
1027         is NULL.
1028         * decl2.c (vague_linkage_p): Likewise.
1030 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
1032         PR c++/43418
1033         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
1034         false, in the cp_parser_expression_statement call.
1036 2010-03-05  Jason Merrill  <jason@redhat.com>
1038         * mangle.c (mangle_decl): Give name collision error even without
1039         ASM_OUTPUT_DEF.
1041 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
1043         * pt.c (process_partial_specialization): Use error_n instead of
1044         error.
1046 2010-03-03  Jason Merrill  <jason@redhat.com>
1048         PR c++/12909
1049         * mangle.c (mangle_decl): Handle VAR_DECL, too.
1051 2010-03-03  Jason Merrill  <jason@redhat.com>
1053         PR c++/12909
1054         * mangle.c: Include cgraph.h.
1055         (mangle_decl): If the mangled name will change in a later
1056         ABI version, make the later mangled name an alias.
1057         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
1058         * Make-lang.in (mangle.o): Depend on cgraph.h.
1059         * method.c (make_alias_for): Handle VAR_DECL, too.
1060         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
1061         * tree.c (no_linkage_check): Adjust.
1062         * decl.c (maybe_commonize_var): Adjust.
1063         * cp-tree.h: Adjust.
1065 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
1067         * pt.c (redeclare_class_template): Use error_n and inform_n.
1069 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
1071         PR c++/42748
1072         * cp-tree.h (push_tinst_level): Declare.
1073         (pop_tinst_level): Likewise.
1074         * pt.c (push_tinst_level): Give it external linkage.
1075         (pop_tinst_level): Likewise.
1076         * mangle.c (mangle_decl_string): Set the source location to that
1077         of the decl while mangling.
1079 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
1081         PR c++/42054
1082         * pt.c (redeclare_class_template): Return false if there are erroneous
1083         template parameters.
1085 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1087         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
1088         -ftemplate-depth=.
1090 2010-02-24  Jason Merrill  <jason@redhat.com>
1092         PR c++/12909
1093         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
1095         * class.c (layout_class_type): Don't give -Wabi warning for a bug
1096         in a previous ABI version.
1098 2010-02-23  Jason Merrill  <jason@redhat.com>
1100         PR c++/43143
1101         * typeck2.c (digest_init_r): Accept value init of array.
1103 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1105         PR c++/43126
1106         * typeck.c (convert_arguments): Update error message.
1108 2010-02-22  Mike Stump  <mikestump@comcast.net>
1110         PR c++/43125
1111         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
1113 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1115         PR c++/23510
1116         * error.c (print_instantiation_partial_context_line): New.
1117         (print_instantiation_partial_context): Print at most 12 contexts,
1118         skip the rest with a message.
1120 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
1122         PR c++/42824
1123         * pt.c (lookup_template_class): Better support of specialization
1124         of member of class template implicit instantiation.
1126 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1128         PR c++/35669
1129         * call.c (conversion_null_warnings): Replace -Wconversion with
1130         -Wconversion-null.
1131         * cvt.c (build_expr_type_conversion): Likewise.
1133 2010-02-18  Jason Merrill  <jason@redhat.com>
1135         PR c++/42837
1136         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
1138         PR c++/43108
1139         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
1140         C build_binary_op.
1141         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
1142         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
1144         PR c++/43070
1145         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
1147         PR c++/26261
1148         PR c++/43101
1149         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
1150         (maybe_update_decl_type): New fn.
1151         * parser.c (cp_parser_init_declarator): Use it.
1153         PR c++/43109
1154         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
1156 2010-02-17  Jason Merrill  <jason@redhat.com>
1158         PR c++/43075
1159         * call.c (build_over_call): Don't create zero-sized assignments.
1160         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
1161         * cp-objcp-common.c (cp_expr_size): Remove.
1162         * cp-tree.h: Remove prototype.
1164         PR c++/43069
1165         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
1166         decl we looked up doesn't match.
1168         PR c++/43093
1169         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
1170         have an INIT_EXPR anymore.
1172         PR c++/43079
1173         * pt.c (convert_nontype_argument): Change assert to test.
1175 2010-02-16  Jason Merrill  <jason@redhat.com>
1177         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
1179         PR c++/43031
1180         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
1181         VIEW_CONVERT_EXPR for conversions between structural equality types
1182         that the back end can't tell are the same.
1184         PR c++/43036
1185         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
1186         cv-quals from element here.
1187         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
1189 2010-02-14  Jason Merrill  <jason@redhat.com>
1191         PR c++/41997
1192         * semantics.c (finish_compound_literal): Use
1193         cp_apply_type_quals_to_decl when creating a static variable.
1195 2010-02-12  Jason Merrill  <jason@redhat.com>
1197         PR c++/43024
1198         * name-lookup.h (current_binding_level): Check for null
1199         cp_function_chain.
1201 2010-02-12  Jason Merrill  <jason@redhat.com>
1203         PR c++/43054
1204         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
1206 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
1208         PR c++/43033
1209         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
1210         instead of x.
1212 2010-02-10  Jason Merrill  <jason@redhat.com>
1214         PR c++/41896
1215         * semantics.c (outer_lambda_capture_p): Revert.
1216         (add_capture): Only finish_member_declaration if
1217         we're in the lambda class.
1218         (register_capture_members): New.
1219         * cp-tree.h: Declare it.
1220         * parser.c (cp_parser_lambda_expression): Call it.
1222 2010-02-10  Jason Merrill  <jason@redhat.com>
1224         PR c++/41896
1225         * semantics.c (outer_lambda_capture_p): Use current_function_decl
1226         instead of current_class_type.
1228 2010-02-10  Jason Merrill  <jason@redhat.com>
1230         PR c++/42983, core issue 906
1231         * method.c (defaultable_fn_check): Check virtualness.
1233 2010-02-10  Jason Merrill  <jason@redhat.com>
1235         PR c++/43016
1236         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
1238 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
1240         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
1241         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
1242         translation.
1243         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
1244         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
1245         (cp_parser_parameter_declaration)
1246         (cp_parser_exception_specification_opt)
1247         (cp_parser_exception_declaration): Likewise.
1248         * pt.c (check_default_tmpl_args): Likewise.
1249         * search.c (lookup_field_r): Likewise.
1251 2010-02-09  Jason Merrill  <jason@redhat.com>
1253         PR c++/42399
1254         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
1256 2010-02-09  Jason Merrill  <jason@redhat.com>
1258         PR c++/42370
1259         * decl2.c (change_return_type): New fn.
1260         * semantics.c (apply_lambda_return_type): Use it.
1261         * cp-tree.h: Declare it.
1263 2010-02-05  Richard Guenther  <rguenther@suse.de>
1265         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
1266         * cp-lang.c: Include gt-cp-cp-lang.h.
1267         * config-lang.in (gtfiles): Add cp/cp-lang.c.
1269 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
1271         PR c++/42915
1272         * typeck.c (get_template_parms_of_dependent_type): Try getting
1273         the template parameters fromt the type itself first.
1275 2010-02-03  Jason Merrill  <jason@redhat.com>
1277         PR c++/4926
1278         PR c++/38600
1279         * mangle.c (write_unqualified_id): Split out from write_expression.
1280         (write_unqualified_name): Call it.
1281         (write_member_name): Likewise.
1282         (write_expression): Support TEMPLATE_ID_EXPR.
1283         Disambiguate operator names.
1285         PR c++/12909
1286         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
1287         -fabi-version=4.
1289 2010-02-02  Jason Merrill  <jason@redhat.com>
1291         PR c++/41090
1292         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
1293         * optimize.c (clone_body): Remap their initializers when making base
1294         variants.
1295         (maybe_clone_body): Complain if multiple clones aren't safe.
1297 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
1299         PR c++/42758
1300         PR c++/42634
1301         PR c++/42336
1302         PR c++/42797
1303         PR c++/42880
1304         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1305         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1306         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
1307         * pt.c (coerce_template_parms, type_unification_real,
1308         expand_template_argument_pack, coerce_template_parameter_pack):
1309         Set the non default template args count.
1310         (current_template_args): Always set non defaulted
1311         template args count when compiled with --enable-checking
1312         (tsubst_template_args, type_unification_real): Propagate the non
1313         defaulted template args count.
1314         * error.c (get_non_default_template_args_count): Renamed
1315         count_non_default_template_args into this. Don't calculate the
1316         non default template argument count anymore. Use the new
1317         accessor macros above to get it.
1318         (dump_template_argument_list, dump_type, dump_decl,
1319         dump_template_parms): Adjust.
1320         * parser.c (cp_parser_template_argument_list): Always set defaulted
1321         template args count when compiled with --enable-checking.
1323 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
1325         * decl.c (redeclaration_error_message): Wrap the return messages into
1326         G_() for easy translation.
1328 2010-01-28  Jason Merrill  <jason@redhat.com>
1330         PR c++/42880
1331         * semantics.c (begin_class_definition): Don't use type_as_string.
1333 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
1335         PR c++/42713
1336         PR c++/42820
1337         * typeck.c (get_template_parms_of_dependent_type): Factorized
1338         this out of incompatible_template_type_parms_p
1339         (incompatible_dependent_types_p): Renamed
1340         incompatible_template_type_parms_p into this. Make it detect
1341         two incompatible dependent typedefs too.
1342         (structural_comptypes): Use incompatible_dependent_types_p.
1343         * pt.c (get_template_info):
1344         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
1346 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
1347             Jason Merrill  <jason@redhat.com>
1349         * mangle.c (write_type): Mangle transparent record as member type.
1350         * semantics.c (begin_class_definition): Recognize decimal classes
1351         and set TYPE_TRANSPARENT_AGGR.
1353 2010-01-20  Jason Merrill  <jason@redhat.com>
1355         PR c++/42338
1356         * mangle.c (write_expression): Handle tree codes that have extra
1357         arguments in the middle-end.
1359 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
1361         PR c++/42038
1362         * except.c (expand_start_catch_block): Deal correctly with
1363         do_begin_catch returning error_mark_node.
1365 2010-01-20  Jason Merrill  <jason@redhat.com>
1367         PR c++/41788
1368         * class.c (layout_class_type): Set packed_maybe_necessary for packed
1369         non-PODs.
1371         PR c++/41920
1372         * semantics.c (build_lambda_object): Call mark_used on captured
1373         variables.
1375         PR c++/40750
1376         * decl.c (grokdeclarator): Clear type_quals for a member function
1377         declared using a typedef.  Don't complain about adding cv-quals
1378         to a function typedef in C++0x mode.
1380 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
1382         * decl.c (create_array_type_for_decl): Remove set but not used
1383         variable error_msg.  Remove break stmts after return stmts.
1385 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
1387         * error.c (dump_template_parms, count_non_default_template_args):
1388         Revert fix of PR c++/42634.
1390 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
1392         PR c++/42634
1393         * error.c (dump_template_parms): Use innermost template
1394         arguments before calling count_non_default_template_args.
1395         (count_non_default_template_args): We are being called with
1396         template innermost arguments now. There is no need to ensure
1397         that again.
1399 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
1401         PR c++/42766
1402         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
1404 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
1406         PR c++/42697
1407         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
1409 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
1411         PR c++/42697
1412         *pt.c (tsubst_decl): Get the arguments of a specialization from
1413         the specialization template, not from the most general template.
1415 2010-01-16  Jason Merrill  <jason@redhat.com>
1417         PR c++/42761
1418         * semantics.c (finish_decltype_type): Within a template, treat
1419         unresolved CALL_EXPR as dependent.
1421 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
1423         * error.c (dump_template_parms,count_non_default_template_args):
1424         Revert changes of PR c++/42634.
1426 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
1428         PR middle-end/42674
1429         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
1430         functions with noreturn attribute.
1432 2010-01-14  Jason Merrill  <jason@redhat.com>
1434         PR c++/42701
1435         * call.c (build_new_method_call): Don't free the vec here.
1437         PR c++/42655
1438         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
1440 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
1442         PR c++/42634
1443         * error.c (dump_template_parms): Use innermost template
1444         arguments before calling count_non_default_template_args.
1445         (count_non_default_template_args): We are being called with
1446         template innermost arguments now. There is no need to ensure
1447         that again.
1449 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
1451         c++/40155
1452         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
1453         arguments that were previously deduced.
1455 2010-01-05  Jason Merrill  <jason@redhat.com>
1457         * pt.c (unify_pack_expansion): Handle deduction from init-list.
1458         * call.c (build_over_call): Don't complain about it.
1460 2010-01-04  Jason Merrill  <jason@redhat.com>
1462         PR c++/42555
1463         * pt.c (tsubst_decl): Don't apply type attributes in place.
1465         PR c++/42567
1466         * semantics.c (describable_type): Remove decltype comment and
1467         semantics.
1471 Copyright (C) 2010 Free Software Foundation, Inc.
1473 Copying and distribution of this file, with or without modification,
1474 are permitted in any medium without royalty provided the copyright
1475 notice and this notice are preserved.