OSDN Git Service

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