re PR c++/43555 (wrong address calculation of multidimensional variable-length array...
[official-gcc.git] / gcc / cp / ChangeLog
blobf63703ead046f5a975cb9be245836cee5749de0f
1 2010-05-27  Jason Merrill  <jason@redhat.com>
3         PR c++/43555
4         * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
5         anonymous VLA size.
7 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
9         PR bootstrap/44287
10         * rtti.c (emit_support_tinfos): Check for NULL_TREE.
11         * class.c (layout_class_type): Likewise.
12         * decl.c (finish_enum): Likewise.
13         * mangle.c (write_builitin_type): Likewise.
15 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
17         * cp-tree.h (cp_decl_specifier_seq): Add new bifield
18         explicit_int128_p.
19         * decl.c (grokdeclarator): Handle __int128.
20         * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
21         (cp_parser_simple_type_specifier): Likewise.
22         * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
23         * typeck.c (cp_common_type): Handle __int128.
24         * mangle.c (integer_type_codes): Add itk_int128 and
25         itk_unsigned_int128.
27 2010-05-26  Jason Merrill  <jason@redhat.com>
29         PR c++/43382
30         * pt.c (tsubst_pack_expansion): Don't get confused by recursive
31         unification.
33 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
35         * cp-lang.c: Do not include expr.h.
37 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
39         * decl.c: Do not include rtl.h
40         * semantics.c: Likewise.
42 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
44         * cp-tree.h: Do not include splay-tree.h.
45         (struct prtmem_cst): Remove unused field and false comment.
46         * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
47         * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
48         * init.c: Do not include rtl.h and expr.h.
49         * class.c: Do not include rtl.h.  Include splay-tree.h.
50         (build_clone): Use plain NULL instead of NULL_RTX.
51         * decl.c: Do not include expr.h.  Explain why rtl.h has to be
52         included.  Include splay-tree.h.
53         * method.c: Do not include rtl.h and expr.h.
54         (use_thunk): Use plain NULL instead of NULL_RTX.
55         * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
56         * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
57         and target.h.  Include splay-tree.h.
58         * expr.c: Do not include rtl.h and expr.h.
59         * pt.c: Do not include obstack.h and rtl.h.
60         (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
61         (tsubst_decl): Likewise.
62         (instantiate_decl): Likewise.
63         * semantics.c: Do not include exprt.h and debug.h.  Explain why
64         rtl.h has to be included.
65         * decl2.c: Do not include rtl.h and expr.h.  Include splay-tree.h.
66         * call.c: Do not include rtl.h and expr.h.
67         * search.c: Do not include obstack.h and rtl.h.
68         * friend.c: Do not include rtl.h and expr.h.
69         * Make-lang.in: Update dependencies.
71 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
73         PR c++/18249
74         * parser.c (non_integral_constant): Add NIC_NONE.
75         (required_token): Add RT_NONE.
76         (cp_parser_unary_expression): Initialize non_constant_p
77         to NIC_NONE.
78         (cp_parser_asm_definition): Initialize missing to RT_NONE.
79         (cp_parser_primary_expression, cp_parser_postfix_expression,
80         cp_parser_cast_expression, cp_parser_binary_expression,
81         cp_parser_functional_cast): Fix formatting.
83 2010-05-25  Shujing Zhao  <pearly.zhao@oracle.com>
84         
85         PR c++/18249
86         * parser.c: Remove inclusion of dyn-string.h.
87         (non_integral_constant): New enum.
88         (name_lookup_error): New enum.
89         (required_token): New enum.
90         (cp_parser_required_error): New function.
91         (cp_parser_require): Change the type of variable token_desc to
92         required_token and use cp_parser_required_error.
93         (cp_parser_require_keyword): Likewise.
94         (cp_parser_error): Use gmsgid as parameter.
95         (cp_parser_name_lookup_error): Change the type of variable desired to
96         name_lookup_error and put the diagnostic in the full sentences. Change
97         caller.
98         (cp_parser_non_integral_constant_expression): Change the type of the
99         variable thing to non_integral_constant and put the diagnostics in
100         full sentences. Change caller.
102 2010-05-24  Eric Botcazou  <ebotcazou@adacore.com>
104         PR middle-end/44100
105         * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
107 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
109         * error.c (cp_diagnostic_starter): Update call to
110         diagnostic_build_prefix.
111         (cp_print_error_function,
112         print_instantiation_partial_context_line): Check show_column flag
113         in context.
115 2010-05-24  Jason Merrill  <jason@redhat.com>
117         PR c++/41510
118         * decl.c (check_initializer): Don't wrap an init-list in a
119         TREE_LIST.
120         * init.c (build_aggr_init): Don't assume copy-initialization if
121         init has CONSTRUCTOR_IS_DIRECT_INIT.
122         * call.c (build_new_method_call): Sanity check.
124 2010-05-24  Nathan Froyd  <froydnj@codesourcery.com>
126         * rtti.c (tinfo_base_init): Use build_constructor instead of
127         build_constructor_from_list.  Don't cons a tree node for
128         returning.
129         (generic_initializer): Use build_constructor_single instead of
130         build_constructor_from_list.
131         (ptr_initializer): Use build_constructor instead of
132         build_constructor_from_list
133         (ptm_initializer): Likewise.
134         (class_initializer): Likewise.  Take varargs instead of TRAIL.
135         (get_pseudo_ti_init): Adjust calls to class_initializer.  Use
136         build_constructor instead of build_constructor_from_list.
138 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
140         * semantics.c: Include bitmap.h.
141         * Make-lang.in: Update dependencies.
143 2010-05-22  Jan Hubicka  <jh@suse.cz>
145         * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
146         comdat vtables.
147         (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
149 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
151         * cxx-pretty-print.c: Correct merge error.
153 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
155         * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
156         (cp_print_error_function): Use diagnostic_abstract_origin macro.
157         (cp_printer): Handle %K here using percent_K_format.
158         * cxx-pretty-print.c: Include tree-pretty-print.h.
159         * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
160         dependencies.
162 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
164         * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
165         Clean up redundant includes.
167 2010-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
169         PR c++/30298
170         * decl.c (xref_basetypes): Return false in case of ill-formed
171         redefinition.
173 2010-05-19  Jason Merrill  <jason@redhat.com>
175         * call.c (reference_binding): Use cp_build_qualified_type_real
176         and cp_type_quals consistently.
177         (add_function_candidate): Likewise.
178         (build_conditional_expr): Likewise.
179         (convert_like_real): Likewise.
180         (type_passed_as): Likewise.
181         * class.c (add_method): Likewise.
182         (same_signature_p): Likewise.
183         (layout_class_type): Likewise.
184         * decl.c (cxx_init_decl_processing): Likewise.
185         (cp_fname_init): Likewise.
186         (grokdeclarator): Likewise.
187         * decl2.c (cp_reconstruct_complex_type): Likewise.
188         * init.c (build_new_1): Likewise.
189         * method.c (do_build_copy_constructor): Likewise.
190         (implicitly_declare_fn): Likewise.
191         * pt.c (tsubst_aggr_type): Likewise.
192         (tsubst): Likewise.
193         * rtti.c (init_rtti_processing): Likewise.
194         (build_headof): Likewise.
195         (build_dynamic_cast_1): Likewise.
196         (tinfo_base_init): Likewise.
197         (emit_support_tinfos): Likewise.
198         * semantics.c (capture_decltype): Likewise.
199         * tree.c (cv_unqualified): Likewise.
200         * typeck.c (composite_pointer_type): Likewise.
201         (string_conv_p): Likewise.
203         * mangle.c (write_CV_qualifiers_for_type): Tweak.
205         * call.c (initialize_reference): Use CP_TYPE_CONST_P.
206         * decl.c (start_decl): Likewise.
207         * semantics.c (finish_compound_literal): Likewise.
208         * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
209         (cp_type_readonly): Remove.
210         * cp-tree.h: Remove declaration.
212         * typeck.c (merge_types): Preserve memfn quals.
214         * decl.c (grokdeclarator): Don't check quals on fn type.
215         * typeck.c (cp_apply_type_quals_to_decl): Likewise.
216         * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
218         PR c++/44193
219         * typeck.c (type_memfn_quals): New fn.
220         (apply_memfn_quals): New fn.
221         (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
222         (cp_type_readonly): Use cp_type_quals.
223         * cp-tree.h: Add declarations.
224         * tree.c (cp_build_qualified_type_real): Don't set, but do
225         preserve, quals on FUNCTION_TYPE.
226         (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
227         * decl.c (build_ptrmem_type): Likewise.
228         (grokdeclarator): Likewise.
229         (static_fn_type): Likewise.
230         * decl2.c (change_return_type): Likewise.
231         (cp_reconstruct_complex_type): Likewise.
232         * pt.c (tsubst_function_type): Likewise.
233         (unify): Likewise.
234         (tsubst): Likewise.  Drop special FUNCTION_TYPE substitution code.
236 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
238         * tree.c (build_min_non_dep_call_vec): Update comment.
240 2010-05-17  Jason Merrill  <jason@redhat.com>
242         * call.c (struct z_candidate): Add explicit_targs field.
243         (add_template_candidate_real): Set it.
244         (build_over_call): Use it to control init-list warning.
246         PR c++/44157
247         * call.c (build_over_call): Limit init-list deduction warning to
248         cases where the argument is actually an init-list.
250         PR c++/44158
251         * call.c (build_over_call): Don't do bitwise copy for move ctor.
253 2010-05-17  Dodji Seketeli  <dodji@redhat.com>
254             Jason Merrill  <jason@redhat.com>
256         PR c++/44108
257         * decl.c (compute_array_index_type): Call mark_rvalue_use.
259 2010-05-15  Jason Merrill  <jason@redhat.com>
261         * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
262         * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
263         TYPE_NOEXCEPT_P.
264         (finish_eh_spec_block): Adjust.
266 2010-05-15  Jakub Jelinek  <jakub@redhat.com>
268         PR c++/44148
269         * pt.c (tsubst): Unshare template argument.
271 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
273         * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
274         * Make-lang.in: Fix dependencies accordingly.
276 2010-05-14  Jason Merrill  <jason@redhat.com>
278         C++ DR 475
279         * except.c (build_throw): Simplify, adjust for DR 475.
281         PR c++/44127
282         * except.c (dtor_nothrow): Return nonzero for type with
283         trivial destructor.
285         PR c++/44127
286         * cp-gimplify.c (gimplify_must_not_throw_expr): Use
287         gimple_build_eh_must_not_throw.
289 2010-05-14  Martin Jambor  <mjambor@suse.cz>
291         * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
292         and define.
294 2010-05-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
296         * call.c (build_new_method_call): Change warning text.
297         * typeck2.c (build_functional_cast): Change error text.
299 2010-05-14  Shujing Zhao  <pearly.zhao@oracle.com>
301         PR c++/30566
302         * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
303         shadowing the outer parameter or variables by the declaration of
304         nested function in nested structure or class. Warn the shadowing by
305         the declaration of nested lambda expression.
307 2010-05-13  Jason Merrill  <jason@redhat.com>
309         * typeck.c (cp_build_array_ref): Factor out from...
310         (build_array_ref): ...here.  Drop complain parm.
311         (build_new_op): Adjust.
312         * class.c (build_vtbl_ref_1): Adjust.
313         * decl2.c (grok_array_decl): Adjust.
314         * cp-tree.h: Adjust prototypes.
316 2010-05-13  Jan Hubicka  <jh@suse.cz>
318         * decl.c (cp_finish_decl): Do not worry about used attribute.
320 2010-05-12  Jason Merrill  <jason@redhat.com>
322         * typeck.c (build_array_ref): Take complain parm.
323         * cp-tree.h: Add it to prototype.
324         * call.c (build_new_op): Pass it.
325         * class.c (build_vtbl_ref): Pass it.
326         * decl2.c (grok_array_decl): Pass it.
328         PR bootstrap/44048
329         PR target/44099
330         * cp-tree.def (NULLPTR_TYPE): Remove.
331         * cp-tree.h (NULLPTR_TYPE_P): New.
332         (SCALAR_TYPE_P): Use it.
333         (nullptr_type_node): New.
334         (cp_tree_index): Add CPTI_NULLPTR_TYPE.
335         * decl.c (cxx_init_decl_processing): Call record_builtin_type on
336         nullptr_type_node.
337         * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
338         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
339         * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
340         * mangle.c (write_type): Likewise.
341         * name-lookup.c (arg_assoc_type): Likewise.
342         * typeck.c (build_reinterpret_cast_1): Likewise.
343         * rtti.c (typeinfo_in_lib_p): Likewise.
344         (emit_support_tinfos): Remove local nullptr_type_node.
346         * cp-tree.h (UNKNOWN_TYPE): Remove.
347         * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
348         * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
349         * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
350         * class.c (instantiate_type): Check unknown_type_node rather than
351         UNKNOWN_TYPE.
352         * name-lookup.c (maybe_push_decl): Likewise.
353         * rtti.c (get_tinfo_decl_dynamic): Likewise.
354         (get_typeid): Likewise.
355         * semantics.c (finish_offsetof): Likewise.
357         PR c++/20669
358         * call.c (add_template_candidate_real): If deduction fails, still
359         add the template as a non-viable candidate.
360         (equal_functions): Handle template candidates.
361         (print_z_candidate): Likewise.
362         (print_z_candidates): Likewise.
363         (build_new_function_call): Likewise.
365         * cp-tree.h (LOOKUP_LIST_ONLY): New.
366         * call.c (add_candidates): Enforce it.
367         (build_new_method_call): Try non-list ctor if no viable list ctor.
368         (build_user_type_conversion_1): Likewise.
370         * call.c (add_candidates): Distinguish between type(x) and
371         x.operator type().
372         (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
373         (build_new_method_call): Give better error for conversion op.
375         * call.c (add_candidates): Add first_arg and return_type parms.
376         Add special constructor/conversion op handling.
377         (convert_class_to_reference): Use it.
378         (build_user_type_conversion_1): Likewise.
379         (build_op_call): Likewise.
380         (build_new_method_call): Likewise.
381         (build_new_op): Adjust.
382         (perform_overload_resolution): Adjust.
384 2010-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
386         PR c++/34272
387         PR c++/43630
388         PR c++/34491
389         * pt.c (process_partial_specialization): Return error_mark_node
390         in case of unused template parameters in partial specialization.
392 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
394         PR c++/44062
395         * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
396         * cvt.c (convert_to_void): ... but here.  If expr is a COMPOUND_EXPR,
397         look at its second operand.
399 2010-05-10  Jason Merrill  <jason@redhat.com>
401         PR c++/44017
402         * semantics.c (baselink_for_fns): Revert earlier change.
404         PR c++/44045
405         * typeck.c (cp_build_modify_expr): Complain about assignment to
406         array from init list.
408 2010-05-10  Fabien Chêne  <fabien.chene@gmail.com>
410         PR c++/43719
411         * decl.c (check_initializer): strip array type before checking for
412         uninitialized const or ref members.
414 2010-05-07  Fabien Chêne  <fabien.chene@gmail.com>
416         PR c++/43951
417         * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
418         error count. Emit errors only if compain is true.
419         (build_new_1): Do not return error_mark_node if
420         diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
421         errors. Delay the check for user-provided constructor.
422         (perform_member_init): Adjust.
423         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
424         prototype.
426 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
427             Jason Merrill  <jason@redhat.com>
429         Add support for C++0x nullptr.
430         * cp-tree.def: Add NULLPTR_TYPE.
431         * cp-tree.h: Add nullptr_node.
432         (cp_tree_index): Add CPTI_NULLPTR.
433         (SCALAR_TYPE_P): Add NULLPTR_TYPE.
434         * call.c (null_ptr_cst_p): Handle nullptr.
435         (standard_conversion): Likewise.
436         (convert_arg_to_ellipsis): Likewise.
437         * mangle.c (write_type): Likewise.
438         * name-lookup.c (arg_assoc_type): Likewise.
439         * parser.c (cp_parser_primary_expression): Likewise.
440         * typeck.c (cp_build_binary_op): Likewise.
441         (build_reinterpret_cast_1): Likewise.
442         * error.c (dump_type): Likewise.
443         (dump_type_prefix, dump_type_suffix): Likewise.
444         * decl.c (cxx_init_decl_processing): Likewise.
445         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
446         * cvt.c (ocp_convert): Likewise.
447         * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
448         nullptr_t tinfo in libsupc++.
450 2010-05-06  Jason Merrill  <jason@redhat.com>
452         * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
454 2010-04-22  Jakub Jelinek <jakub@redhat.com>
455             Dodji Seketeli <dodji@redhat.com>
457         PR c/18624
458         * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
459         Declare ...
460         * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
461         * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
462         (decay_conversion, perform_integral_promotions): Call rvalue_use.
463         (cp_build_unary_op): Call lvalue_use.
464         * decl.c (unused_but_set_errorcount): New variable.
465         (poplevel): Issue -Wunused-but-set-variable diagnostics.
466         (duplicate_decls): Merge DECL_READ_P flags.
467         (start_cleanup_fn): Set DECL_READ_P flag.
468         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
469         * tree.c (rvalue): Call rvalue_use.
470         * pt.c (convert_nontype_argument): Likewise.
471         * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
472         finish_decltype_type): Likewise.
473         * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
474         (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
475         or rvalue_use depending on the expr.
476         * init.c (build_new, build_delete): Likewise.
477         * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
479 2010-05-05  Jason Merrill  <jason@redhat.com>
481         PR c++/43787
482         * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
483         * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
485 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
487         PR c++/43028
488         * pt.c (unify): Check each elt for error_mark_node.
490 2010-05-04  Jason Merrill  <jason@redhat.com>
492         PR c++/38064
493         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
495 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
497         PR c++/43705
498         * call.c (build_new_method_call): Return error_mark_node if fns is
499         NULL_TREE.
501 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
503         PR c++/43953
504         * pt.c (most_specialized_class): Pretend we are processing
505         a template decl during the call to coerce_template_parms.
507 2010-05-03  Jason Merrill  <jason@redhat.com>
509         PR c++/42810
510         PR c++/43680
511         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
512         from the selected underlying type unless -fstrict-enums.  Set
513         ENUM_UNDERLYING_TYPE to have the restricted range.
514         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
515         * class.c (check_bitfield_decl): Likewise.
517 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
519         PR c++/43951
520         * init.c (build_new_1): Revert the accidental checkin in
521         revision 158918.
523 2010-04-30  Jason Merrill  <jason@redhat.com>
525         PR c++/43868
526         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
527         (pp_cxx_type_specifier_seq): ...here.
529 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
531         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
532         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
534 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
536         PR c++/43779
537         * typeck.c (warn_args_num): New function.
538         (convert_arguments): Use warn_args_num to print the diagnostic
539         messages. 
541 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
543         PR c++/43890
544         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
545         user-provided constructor while recursing.
547 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
549         PR c++/9335
550         * error.c (print_instantiation_partial_context_line): Handle
551         recursive instantiation.
552         (print_instantiation_partial_context): Likewise.
554 2010-04-27  Jason Merrill  <jason@redhat.com>
556         * init.c (perform_member_init): Check CLASS_TYPE_P.
558 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
560         PR c++/29043
561         * init.c (perform_member_init): check for uninitialized const or
562         reference members, including array types.
564 2010-04-24  Jason Merrill  <jason@redhat.com>
566         * tree.c (get_fns): Split out from get_first_fn.
567         * cp-tree.h: Declare it.
568         * search.c (shared_member_p): Use it.
569         * semantics.c (finish_qualified_id_expr): Simplify.
570         (finish_id_expression): Simplify.
572         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
573         whenever object is NULL_TREE.  Don't do 'this' capture here.
574         (finish_qualified_id_expr): Pass NULL_TREE.
575         (finish_id_expression): Likewise.
576         (lambda_expr_this_capture): Likewise.
578         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
579         rather than checking current_class_ref directly.
580         (finish_call_expr): Likewise.
582         PR c++/43856
583         * name-lookup.c (qualify_lookup): Disqualify lambda op().
584         * class.c (current_nonlambda_class_type): New fn.
585         * semantics.c (nonlambda_method_basetype): New.
586         * cp-tree.h: Declare them.
587         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
589         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
591         PR c++/43875
592         * semantics.c (lambda_return_type): Complain about
593         braced-init-list.
595         PR c++/43790
596         * tree.c (cv_unqualified): Handle error_mark_node.
598         PR c++/41468
599         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
600         if we don't want errors.
602         PR c++/41468
603         * class.c (convert_to_base): Add complain parameter.  Pass
604         ba_quiet to lookup_base if we don't want errors.
605         (build_vfield_ref): Pass complain to convert_to_base.
606         * call.c (convert_like_real): Likewise.
607         (initialize_reference): Likewise.
608         (perform_direct_initialization_if_possible): Pass complain to
609         convert_like_real.
610         * cp-tree.h: Adjust.
612 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
613             Jason Merrill  <jason@redhat.com>
615         PR c++/42844
616         * decl.c (check_for_uninitialized_const_var): Handle classes that need
617         constructing, too.
618         (check_initializer): Call it for classes that need constructing, too.
619         * class.c (in_class_defaulted_default_constructor): New.
620         * cp-tree.h: Declare it.
622 2010-04-20  Jason Merrill  <jason@redhat.com>
624         PR c++/9335
625         * init.c (constant_value_1): Treat error_mark_node as a constant
626         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
627         * cvt.c (ocp_convert): Handle getting error_mark_node from
628         integral_constant_value.
629         * decl.c (compute_array_index_type): Likewise.
631 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
633         PR c++/43800
634         PR c++/43704
635         * typeck.c (incompatible_dependent_types_p): If one of the
636         compared types if not a typedef then honour their main variant
637         equivalence.
639 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
641         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
643 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
645         PR c++/43704
646         * typeck.c (structural_comptypes): Test dependent typedefs
647         incompatibility before testing for their main variant based
648         equivalence.
650 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
652         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
653         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
655 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
657         * decl.c (cxx_init_decl_processing): Remove second argument in call to
658         build_common_tree_nodes.
660 2010-04-14  Jason Merrill  <jason@redhat.com>
662         PR c++/36625
663         * parser.c (cp_parser_parenthesized_expression_list): Change
664         is_attribute_list parm to int to indicate whether or not to
665         handle initial identifier specially.
666         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
668 2010-04-13  Jason Merrill  <jason@redhat.com>
670         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
671         CLASS_TYPE_P.
672         * parser.c (cp_parser_lambda_expression): Complain about lambda in
673         unevaluated context.
674         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
676 2010-04-12  Jason Merrill  <jason@redhat.com>
678         PR c++/43641
679         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
680         return value directly.
682         * call.c (type_decays_to): Call cv_unqualified for non-class type.
684 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
686         PR c++/25811
687         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
688         * init.c (build_new_1): Check for uninitialized const members and
689         uninitialized reference members, when using new without
690         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
691         (diagnose_uninitialized_cst_or_ref_member): Define, call
692         diagnose_uninitialized_cst_or_ref_member_1.
693         (diagnose_uninitialized_cst_or_ref_member_1): New function.
695 2010-04-12  Richard Guenther  <rguenther@suse.de>
697         PR c++/43611
698         * semantics.c (expand_or_defer_fn_1): Do not keep extern
699         template inline functions.
701 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
703         PR c++/28584
704         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
705         pointer type.
707 2010-04-07  Jason Merrill  <jason@redhat.com>
709         PR c++/43016
710         * decl.c (start_preparsed_function): Do defer nested functions.
712         PR c++/11094, DR 408
713         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
714         * decl2.c (finish_static_data_member_decl): Set it.
715         * decl.c (duplicate_decls): Propagate it.
716         * pt.c (tsubst_decl): Don't substitute the domain of an array
717         VAR_DECL if it's set.
718         (regenerate_decl_from_template): Substitute it here.
719         (type_dependent_expression_p): Return true if it's set.
720         * semantics.c (finish_decltype_type): Instantiate such a variable.
721         * typeck.c (cxx_sizeof_expr): Likewise.
722         (strip_array_domain): New.
724         PR c++/43145
725         * name-lookup.c (current_decl_namespace): Non-static.
726         (pop_nested_namespace): Sanity check.
727         * cp-tree.h: Declare current_decl_namespace.
728         * decl.c (grokvardecl): Use it instead of current_namespace.
729         (grokfndecl): Likewise.
731         PR c++/38392
732         * pt.c (tsubst_friend_function): Instatiate a friend that has already
733         been used.
735         * pt.c (print_template_statistics): New.
736         * cp-tree.h: Declare it.
737         * tree.c (cxx_print_statistics): Call it.
739         PR c++/41970
740         * decl.c (grokvardecl): Tweak warning message.
741         (grokfndecl): Likewise.
743 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
745         PR c++/42697
746         *pt.c (tsubst_decl): Get the arguments of a specialization from
747         the specialization template, not from the most general template.
749 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
751         PR c++/40239
752         * typeck2.c (process_init_constructor_record):
753         value-initialize members that are are not explicitely
754         initialized.
756 2010-04-07  Jie Zhang  <jie@codesourcery.com>
758         PR c++/42556
759         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
760         when all of its elements are non-constant and have been split out.
762 2010-04-06  Taras Glek  <taras@mozilla.com>
763             Jason Merrill  <jason@redhat.com>
765         * parser.c (cp_parser_class_specifier): Set class location to that
766         of IDENTIFIER_NODE instead of '{' when possible.
767         * semantics.c (begin_class_definition): Do not overide locations
768         with less precise ones.
770 2010-04-06  Jason Merrill  <jason@redhat.com>
772         PR c++/43648
773         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
775         PR c++/43621
776         * pt.c (maybe_update_decl_type): Check the return value from
777         push_scope.
779 2010-04-01  Jason Merrill  <jason@redhat.com>
781         * decl.c (next_initializable_field): No longer static.
782         * cp-tree.h: Declare it.
783         * call.c (build_aggr_conv): Fail if there are more initializers
784         than initializable fields.
786         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
787         instead of void_zero_node.
789 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
791         PR c++/43558
792         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
793         * pt.c (end_template_parm_list): Store sibling template parms of
794         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
795         (push_template_decl_real): Don't store the containing template decl
796         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
797         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
798         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
799         Simplify the logic.
801 2010-03-30  Jason Merrill  <jason@redhat.com>
803         PR c++/43076
804         * pt.c (push_template_decl_real): Deal better with running out of
805         scopes before running out of template parms.
807         PR c++/41185
808         PR c++/41786
809         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
810         function parameter context.  Don't print an error if parsing
811         tentatively.
813         PR c++/43559
814         * pt.c (more_specialized_fn): Don't control cv-qualifier check
815         with same_type_p.
817 2010-03-26  Jason Merrill  <jason@redhat.com>
819         PR c++/43509
820         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
821         c++0x mode, but not other type-names.
823 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
825         PR c++/43327
826         * pt.c (add_to_template_args): Support NULL ARGS;
827         (most_specialized_class): call coerce_template_parms on
828         template arguments passed to get_class_bindings. Use
829         add_to_template_args.
830         (unify): Handle VAR_DECLs.
832 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
834         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
835         into int.
836         * pt.c (get_template_parms_at_level): Adjust.
838 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
840         PR c++/43206
841         * cp-tree.h (get_template_parms_at_level): Declare ...
842         * pt.c (get_template_parms_at_level): ... new function.
843         * typeck.c (get_template_parms_of_dependent_type): If a template
844         type parm's DECL_CONTEXT isn't yet set, get its siblings from
845         current_template_parms. Use get_template_parms_at_level. Remove
846         useless test.
847         (incompatible_dependent_types_p): If we get empty parms from just one
848         of the template type parms we are comparing then the template parms are
849         incompatible.
851 2010-03-24  Jason Merrill  <jason@redhat.com>
853         PR c++/43502
854         * parser.c (make_declarator): Initialize id_loc.
855         (cp_parser_lambda_declarator_opt): And set it.
857 2010-03-23  Jason Merrill  <jason@redhat.com>
859         Make lambda conversion op and op() non-static.
860         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
861         Also add the thunk function returned by the conversion op.
862         Mark the conversion deleted if the op() is variadic.
863         * decl2.c (mark_used): Give helpful message about deleted conversion.
864         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
865         * semantics.c (finish_this_expr): Adjust.
866         * mangle.c (write_closure_type_name): Adjust.
867         * decl.c (grok_op_properties): Don't allow it.
868         * call.c (build_user_type_conversion_1): No static conversion ops.
869         (build_op_call): Or op().
871         * decl2.c (change_return_type): Fix 'this' quals.
873 2010-03-22  Jason Merrill  <jason@redhat.com>
875         PR c++/43333
876         * tree.c (pod_type_p): Use old meaning in C++98 mode.
878         PR c++/43281
879         * pt.c (contains_auto_r): New fn.
880         (do_auto_deduction): Use it.
881         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
883 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
885         PR c++/43081:
886         * decl2.c (grokfield): Handle invalid initializers for member
887         functions.
889 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
891         PR c++/43375
892         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
893         is NULL.
894         * decl2.c (vague_linkage_p): Likewise.
896 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
898         PR c++/43418
899         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
900         false, in the cp_parser_expression_statement call.
902 2010-03-05  Jason Merrill  <jason@redhat.com>
904         * mangle.c (mangle_decl): Give name collision error even without
905         ASM_OUTPUT_DEF.
907 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
909         * pt.c (process_partial_specialization): Use error_n instead of
910         error.
912 2010-03-03  Jason Merrill  <jason@redhat.com>
914         PR c++/12909
915         * mangle.c (mangle_decl): Handle VAR_DECL, too.
917 2010-03-03  Jason Merrill  <jason@redhat.com>
919         PR c++/12909
920         * mangle.c: Include cgraph.h.
921         (mangle_decl): If the mangled name will change in a later
922         ABI version, make the later mangled name an alias.
923         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
924         * Make-lang.in (mangle.o): Depend on cgraph.h.
925         * method.c (make_alias_for): Handle VAR_DECL, too.
926         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
927         * tree.c (no_linkage_check): Adjust.
928         * decl.c (maybe_commonize_var): Adjust.
929         * cp-tree.h: Adjust.
931 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
933         * pt.c (redeclare_class_template): Use error_n and inform_n.
935 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
937         PR c++/42748
938         * cp-tree.h (push_tinst_level): Declare.
939         (pop_tinst_level): Likewise.
940         * pt.c (push_tinst_level): Give it external linkage.
941         (pop_tinst_level): Likewise.
942         * mangle.c (mangle_decl_string): Set the source location to that
943         of the decl while mangling.
945 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
947         PR c++/42054
948         * pt.c (redeclare_class_template): Return false if there are erroneous
949         template parameters.
951 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
953         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
954         -ftemplate-depth=.
956 2010-02-24  Jason Merrill  <jason@redhat.com>
958         PR c++/12909
959         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
961         * class.c (layout_class_type): Don't give -Wabi warning for a bug
962         in a previous ABI version.
964 2010-02-23  Jason Merrill  <jason@redhat.com>
966         PR c++/43143
967         * typeck2.c (digest_init_r): Accept value init of array.
969 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
971         PR c++/43126
972         * typeck.c (convert_arguments): Update error message.
974 2010-02-22  Mike Stump  <mikestump@comcast.net>
976         PR c++/43125
977         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
979 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
981         PR c++/23510
982         * error.c (print_instantiation_partial_context_line): New.
983         (print_instantiation_partial_context): Print at most 12 contexts,
984         skip the rest with a message.
986 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
988         PR c++/42824
989         * pt.c (lookup_template_class): Better support of specialization
990         of member of class template implicit instantiation.
992 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
994         PR c++/35669
995         * call.c (conversion_null_warnings): Replace -Wconversion with
996         -Wconversion-null.
997         * cvt.c (build_expr_type_conversion): Likewise.
999 2010-02-18  Jason Merrill  <jason@redhat.com>
1001         PR c++/42837
1002         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
1004         PR c++/43108
1005         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
1006         C build_binary_op.
1007         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
1008         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
1010         PR c++/43070
1011         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
1013         PR c++/26261
1014         PR c++/43101
1015         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
1016         (maybe_update_decl_type): New fn.
1017         * parser.c (cp_parser_init_declarator): Use it.
1019         PR c++/43109
1020         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
1022 2010-02-17  Jason Merrill  <jason@redhat.com>
1024         PR c++/43075
1025         * call.c (build_over_call): Don't create zero-sized assignments.
1026         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
1027         * cp-objcp-common.c (cp_expr_size): Remove.
1028         * cp-tree.h: Remove prototype.
1030         PR c++/43069
1031         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
1032         decl we looked up doesn't match.
1034         PR c++/43093
1035         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
1036         have an INIT_EXPR anymore.
1038         PR c++/43079
1039         * pt.c (convert_nontype_argument): Change assert to test.
1041 2010-02-16  Jason Merrill  <jason@redhat.com>
1043         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
1045         PR c++/43031
1046         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
1047         VIEW_CONVERT_EXPR for conversions between structural equality types
1048         that the back end can't tell are the same.
1050         PR c++/43036
1051         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
1052         cv-quals from element here.
1053         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
1055 2010-02-14  Jason Merrill  <jason@redhat.com>
1057         PR c++/41997
1058         * semantics.c (finish_compound_literal): Use
1059         cp_apply_type_quals_to_decl when creating a static variable.
1061 2010-02-12  Jason Merrill  <jason@redhat.com>
1063         PR c++/43024
1064         * name-lookup.h (current_binding_level): Check for null
1065         cp_function_chain.
1067 2010-02-12  Jason Merrill  <jason@redhat.com>
1069         PR c++/43054
1070         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
1072 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
1074         PR c++/43033
1075         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
1076         instead of x.
1078 2010-02-10  Jason Merrill  <jason@redhat.com>
1080         PR c++/41896
1081         * semantics.c (outer_lambda_capture_p): Revert.
1082         (add_capture): Only finish_member_declaration if
1083         we're in the lambda class.
1084         (register_capture_members): New.
1085         * cp-tree.h: Declare it.
1086         * parser.c (cp_parser_lambda_expression): Call it.
1088 2010-02-10  Jason Merrill  <jason@redhat.com>
1090         PR c++/41896
1091         * semantics.c (outer_lambda_capture_p): Use current_function_decl
1092         instead of current_class_type.
1094 2010-02-10  Jason Merrill  <jason@redhat.com>
1096         PR c++/42983, core issue 906
1097         * method.c (defaultable_fn_check): Check virtualness.
1099 2010-02-10  Jason Merrill  <jason@redhat.com>
1101         PR c++/43016
1102         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
1104 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
1106         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
1107         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
1108         translation.
1109         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
1110         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
1111         (cp_parser_parameter_declaration)
1112         (cp_parser_exception_specification_opt)
1113         (cp_parser_exception_declaration): Likewise.
1114         * pt.c (check_default_tmpl_args): Likewise.
1115         * search.c (lookup_field_r): Likewise.
1117 2010-02-09  Jason Merrill  <jason@redhat.com>
1119         PR c++/42399
1120         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
1122 2010-02-09  Jason Merrill  <jason@redhat.com>
1124         PR c++/42370
1125         * decl2.c (change_return_type): New fn.
1126         * semantics.c (apply_lambda_return_type): Use it.
1127         * cp-tree.h: Declare it.
1129 2010-02-05  Richard Guenther  <rguenther@suse.de>
1131         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
1132         * cp-lang.c: Include gt-cp-cp-lang.h.
1133         * config-lang.in (gtfiles): Add cp/cp-lang.c.
1135 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
1137         PR c++/42915
1138         * typeck.c (get_template_parms_of_dependent_type): Try getting
1139         the template parameters fromt the type itself first.
1141 2010-02-03  Jason Merrill  <jason@redhat.com>
1143         PR c++/4926
1144         PR c++/38600
1145         * mangle.c (write_unqualified_id): Split out from write_expression.
1146         (write_unqualified_name): Call it.
1147         (write_member_name): Likewise.
1148         (write_expression): Support TEMPLATE_ID_EXPR.
1149         Disambiguate operator names.
1151         PR c++/12909
1152         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
1153         -fabi-version=4.
1155 2010-02-02  Jason Merrill  <jason@redhat.com>
1157         PR c++/41090
1158         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
1159         * optimize.c (clone_body): Remap their initializers when making base
1160         variants.
1161         (maybe_clone_body): Complain if multiple clones aren't safe.
1163 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
1165         PR c++/42758
1166         PR c++/42634
1167         PR c++/42336
1168         PR c++/42797
1169         PR c++/42880
1170         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1171         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1172         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
1173         * pt.c (coerce_template_parms, type_unification_real,
1174         expand_template_argument_pack, coerce_template_parameter_pack):
1175         Set the non default template args count.
1176         (current_template_args): Always set non defaulted
1177         template args count when compiled with --enable-checking
1178         (tsubst_template_args, type_unification_real): Propagate the non
1179         defaulted template args count.
1180         * error.c (get_non_default_template_args_count): Renamed
1181         count_non_default_template_args into this. Don't calculate the
1182         non default template argument count anymore. Use the new
1183         accessor macros above to get it.
1184         (dump_template_argument_list, dump_type, dump_decl,
1185         dump_template_parms): Adjust.
1186         * parser.c (cp_parser_template_argument_list): Always set defaulted
1187         template args count when compiled with --enable-checking.
1189 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
1191         * decl.c (redeclaration_error_message): Wrap the return messages into
1192         G_() for easy translation.
1194 2010-01-28  Jason Merrill  <jason@redhat.com>
1196         PR c++/42880
1197         * semantics.c (begin_class_definition): Don't use type_as_string.
1199 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
1201         PR c++/42713
1202         PR c++/42820
1203         * typeck.c (get_template_parms_of_dependent_type): Factorized
1204         this out of incompatible_template_type_parms_p
1205         (incompatible_dependent_types_p): Renamed
1206         incompatible_template_type_parms_p into this. Make it detect
1207         two incompatible dependent typedefs too.
1208         (structural_comptypes): Use incompatible_dependent_types_p.
1209         * pt.c (get_template_info):
1210         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
1212 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
1213             Jason Merrill  <jason@redhat.com>
1215         * mangle.c (write_type): Mangle transparent record as member type.
1216         * semantics.c (begin_class_definition): Recognize decimal classes
1217         and set TYPE_TRANSPARENT_AGGR.
1219 2010-01-20  Jason Merrill  <jason@redhat.com>
1221         PR c++/42338
1222         * mangle.c (write_expression): Handle tree codes that have extra
1223         arguments in the middle-end.
1225 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
1227         PR c++/42038
1228         * except.c (expand_start_catch_block): Deal correctly with
1229         do_begin_catch returning error_mark_node.
1231 2010-01-20  Jason Merrill  <jason@redhat.com>
1233         PR c++/41788
1234         * class.c (layout_class_type): Set packed_maybe_necessary for packed
1235         non-PODs.
1237         PR c++/41920
1238         * semantics.c (build_lambda_object): Call mark_used on captured
1239         variables.
1241         PR c++/40750
1242         * decl.c (grokdeclarator): Clear type_quals for a member function
1243         declared using a typedef.  Don't complain about adding cv-quals
1244         to a function typedef in C++0x mode.
1246 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
1248         * decl.c (create_array_type_for_decl): Remove set but not used
1249         variable error_msg.  Remove break stmts after return stmts.
1251 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
1253         * error.c (dump_template_parms, count_non_default_template_args):
1254         Revert fix of PR c++/42634.
1256 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
1258         PR c++/42634
1259         * error.c (dump_template_parms): Use innermost template
1260         arguments before calling count_non_default_template_args.
1261         (count_non_default_template_args): We are being called with
1262         template innermost arguments now. There is no need to ensure
1263         that again.
1265 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
1267         PR c++/42766
1268         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
1270 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
1272         PR c++/42697
1273         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
1275 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
1277         PR c++/42697
1278         *pt.c (tsubst_decl): Get the arguments of a specialization from
1279         the specialization template, not from the most general template.
1281 2010-01-16  Jason Merrill  <jason@redhat.com>
1283         PR c++/42761
1284         * semantics.c (finish_decltype_type): Within a template, treat
1285         unresolved CALL_EXPR as dependent.
1287 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
1289         * error.c (dump_template_parms,count_non_default_template_args):
1290         Revert changes of PR c++/42634.
1292 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
1294         PR middle-end/42674
1295         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
1296         functions with noreturn attribute.
1298 2010-01-14  Jason Merrill  <jason@redhat.com>
1300         PR c++/42701
1301         * call.c (build_new_method_call): Don't free the vec here.
1303         PR c++/42655
1304         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
1306 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
1308         PR c++/42634
1309         * error.c (dump_template_parms): Use innermost template
1310         arguments before calling count_non_default_template_args.
1311         (count_non_default_template_args): We are being called with
1312         template innermost arguments now. There is no need to ensure
1313         that again.
1315 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
1317         c++/40155
1318         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
1319         arguments that were previously deduced.
1321 2010-01-05  Jason Merrill  <jason@redhat.com>
1323         * pt.c (unify_pack_expansion): Handle deduction from init-list.
1324         * call.c (build_over_call): Don't complain about it.
1326 2010-01-04  Jason Merrill  <jason@redhat.com>
1328         PR c++/42555
1329         * pt.c (tsubst_decl): Don't apply type attributes in place.
1331         PR c++/42567
1332         * semantics.c (describable_type): Remove decltype comment and
1333         semantics.
1337 Copyright (C) 2010 Free Software Foundation, Inc.
1339 Copying and distribution of this file, with or without modification,
1340 are permitted in any medium without royalty provided the copyright
1341 notice and this notice are preserved.