OSDN Git Service

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