OSDN Git Service

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