Add support for C++0x nullptr.
[official-gcc/constexpr.git] / gcc / cp / ChangeLog
blob860f4e7476f650d15071255dba99e466d394a9a6
1 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2             Jason Merrill  <jason@redhat.com>
4         Add support for C++0x nullptr.
5         * cp-tree.def: Add NULLPTR_TYPE.
6         * cp-tree.h: Add nullptr_node.
7         (cp_tree_index): Add CPTI_NULLPTR.
8         (SCALAR_TYPE_P): Add NULLPTR_TYPE.
9         * call.c (null_ptr_cst_p): Handle nullptr.
10         (standard_conversion): Likewise.
11         (convert_arg_to_ellipsis): Likewise.
12         * mangle.c (write_type): Likewise.
13         * name-lookup.c (arg_assoc_type): Likewise.
14         * parser.c (cp_parser_primary_expression): Likewise.
15         * typeck.c (cp_build_binary_op): Likewise.
16         (build_reinterpret_cast_1): Likewise.
17         * error.c (dump_type): Likewise.
18         (dump_type_prefix, dump_type_suffix): Likewise.
19         * decl.c (cxx_init_decl_processing): Likewise.
20         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
21         * cvt.c (ocp_convert): Likewise.
22         * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
23         nullptr_t tinfo in libsupc++.
25 2010-05-06  Jason Merrill  <jason@redhat.com>
27         * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
29 2010-04-22  Jakub Jelinek <jakub@redhat.com>
30             Dodji Seketeli <dodji@redhat.com>
32         PR c/18624
33         * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
34         Declare ...
35         * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
36         * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
37         (decay_conversion, perform_integral_promotions): Call rvalue_use.
38         (cp_build_unary_op): Call lvalue_use.
39         * decl.c (unused_but_set_errorcount): New variable.
40         (poplevel): Issue -Wunused-but-set-variable diagnostics.
41         (duplicate_decls): Merge DECL_READ_P flags.
42         (start_cleanup_fn): Set DECL_READ_P flag.
43         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
44         * tree.c (rvalue): Call rvalue_use.
45         * pt.c (convert_nontype_argument): Likewise.
46         * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
47         finish_decltype_type): Likewise.
48         * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
49         (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
50         or rvalue_use depending on the expr.
51         * init.c (build_new, build_delete): Likewise.
52         * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
54 2010-05-05  Jason Merrill  <jason@redhat.com>
56         PR c++/43787
57         * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
58         * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
60 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
62         PR c++/43028
63         * pt.c (unify): Check each elt for error_mark_node.
65 2010-05-04  Jason Merrill  <jason@redhat.com>
67         PR c++/38064
68         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
70 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
72         PR c++/43705
73         * call.c (build_new_method_call): Return error_mark_node if fns is
74         NULL_TREE.
76 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
78         PR c++/43953
79         * pt.c (most_specialized_class): Pretend we are processing
80         a template decl during the call to coerce_template_parms.
82 2010-05-03  Jason Merrill  <jason@redhat.com>
84         PR c++/42810
85         PR c++/43680
86         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
87         from the selected underlying type unless -fstrict-enums.  Set
88         ENUM_UNDERLYING_TYPE to have the restricted range.
89         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
90         * class.c (check_bitfield_decl): Likewise.
92 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
94         PR c++/43951
95         * init.c (build_new_1): Revert the accidental checkin in
96         revision 158918.
98 2010-04-30  Jason Merrill  <jason@redhat.com>
100         PR c++/43868
101         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
102         (pp_cxx_type_specifier_seq): ...here.
104 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
106         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
107         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
109 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
111         PR c++/43779
112         * typeck.c (warn_args_num): New function.
113         (convert_arguments): Use warn_args_num to print the diagnostic
114         messages. 
116 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
118         PR c++/43890
119         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
120         user-provided constructor while recursing.
122 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
124         PR c++/9335
125         * error.c (print_instantiation_partial_context_line): Handle
126         recursive instantiation.
127         (print_instantiation_partial_context): Likewise.
129 2010-04-27  Jason Merrill  <jason@redhat.com>
131         * init.c (perform_member_init): Check CLASS_TYPE_P.
133 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
135         PR c++/29043
136         * init.c (perform_member_init): check for uninitialized const or
137         reference members, including array types.
139 2010-04-24  Jason Merrill  <jason@redhat.com>
141         * tree.c (get_fns): Split out from get_first_fn.
142         * cp-tree.h: Declare it.
143         * search.c (shared_member_p): Use it.
144         * semantics.c (finish_qualified_id_expr): Simplify.
145         (finish_id_expression): Simplify.
147         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
148         whenever object is NULL_TREE.  Don't do 'this' capture here.
149         (finish_qualified_id_expr): Pass NULL_TREE.
150         (finish_id_expression): Likewise.
151         (lambda_expr_this_capture): Likewise.
153         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
154         rather than checking current_class_ref directly.
155         (finish_call_expr): Likewise.
157         PR c++/43856
158         * name-lookup.c (qualify_lookup): Disqualify lambda op().
159         * class.c (current_nonlambda_class_type): New fn.
160         * semantics.c (nonlambda_method_basetype): New.
161         * cp-tree.h: Declare them.
162         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
164         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
166         PR c++/43875
167         * semantics.c (lambda_return_type): Complain about
168         braced-init-list.
170         PR c++/43790
171         * tree.c (cv_unqualified): Handle error_mark_node.
173         PR c++/41468
174         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
175         if we don't want errors.
177         PR c++/41468
178         * class.c (convert_to_base): Add complain parameter.  Pass
179         ba_quiet to lookup_base if we don't want errors.
180         (build_vfield_ref): Pass complain to convert_to_base.
181         * call.c (convert_like_real): Likewise.
182         (initialize_reference): Likewise.
183         (perform_direct_initialization_if_possible): Pass complain to
184         convert_like_real.
185         * cp-tree.h: Adjust.
187 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
188             Jason Merrill  <jason@redhat.com>
190         PR c++/42844
191         * decl.c (check_for_uninitialized_const_var): Handle classes that need
192         constructing, too.
193         (check_initializer): Call it for classes that need constructing, too.
194         * class.c (in_class_defaulted_default_constructor): New.
195         * cp-tree.h: Declare it.
197 2010-04-20  Jason Merrill  <jason@redhat.com>
199         PR c++/9335
200         * init.c (constant_value_1): Treat error_mark_node as a constant
201         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
202         * cvt.c (ocp_convert): Handle getting error_mark_node from
203         integral_constant_value.
204         * decl.c (compute_array_index_type): Likewise.
206 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
208         PR c++/43800
209         PR c++/43704
210         * typeck.c (incompatible_dependent_types_p): If one of the
211         compared types if not a typedef then honour their main variant
212         equivalence.
214 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
216         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
218 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
220         PR c++/43704
221         * typeck.c (structural_comptypes): Test dependent typedefs
222         incompatibility before testing for their main variant based
223         equivalence.
225 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
227         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
228         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
230 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
232         * decl.c (cxx_init_decl_processing): Remove second argument in call to
233         build_common_tree_nodes.
235 2010-04-14  Jason Merrill  <jason@redhat.com>
237         PR c++/36625
238         * parser.c (cp_parser_parenthesized_expression_list): Change
239         is_attribute_list parm to int to indicate whether or not to
240         handle initial identifier specially.
241         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
243 2010-04-13  Jason Merrill  <jason@redhat.com>
245         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
246         CLASS_TYPE_P.
247         * parser.c (cp_parser_lambda_expression): Complain about lambda in
248         unevaluated context.
249         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
251 2010-04-12  Jason Merrill  <jason@redhat.com>
253         PR c++/43641
254         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
255         return value directly.
257         * call.c (type_decays_to): Call cv_unqualified for non-class type.
259 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
261         PR c++/25811
262         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
263         * init.c (build_new_1): Check for uninitialized const members and
264         uninitialized reference members, when using new without
265         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
266         (diagnose_uninitialized_cst_or_ref_member): Define, call
267         diagnose_uninitialized_cst_or_ref_member_1.
268         (diagnose_uninitialized_cst_or_ref_member_1): New function.
270 2010-04-12  Richard Guenther  <rguenther@suse.de>
272         PR c++/43611
273         * semantics.c (expand_or_defer_fn_1): Do not keep extern
274         template inline functions.
276 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
278         PR c++/28584
279         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
280         pointer type.
282 2010-04-07  Jason Merrill  <jason@redhat.com>
284         PR c++/43016
285         * decl.c (start_preparsed_function): Do defer nested functions.
287         PR c++/11094, DR 408
288         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
289         * decl2.c (finish_static_data_member_decl): Set it.
290         * decl.c (duplicate_decls): Propagate it.
291         * pt.c (tsubst_decl): Don't substitute the domain of an array
292         VAR_DECL if it's set.
293         (regenerate_decl_from_template): Substitute it here.
294         (type_dependent_expression_p): Return true if it's set.
295         * semantics.c (finish_decltype_type): Instantiate such a variable.
296         * typeck.c (cxx_sizeof_expr): Likewise.
297         (strip_array_domain): New.
299         PR c++/43145
300         * name-lookup.c (current_decl_namespace): Non-static.
301         (pop_nested_namespace): Sanity check.
302         * cp-tree.h: Declare current_decl_namespace.
303         * decl.c (grokvardecl): Use it instead of current_namespace.
304         (grokfndecl): Likewise.
306         PR c++/38392
307         * pt.c (tsubst_friend_function): Instatiate a friend that has already
308         been used.
310         * pt.c (print_template_statistics): New.
311         * cp-tree.h: Declare it.
312         * tree.c (cxx_print_statistics): Call it.
314         PR c++/41970
315         * decl.c (grokvardecl): Tweak warning message.
316         (grokfndecl): Likewise.
318 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
320         PR c++/42697
321         *pt.c (tsubst_decl): Get the arguments of a specialization from
322         the specialization template, not from the most general template.
324 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
326         PR c++/40239
327         * typeck2.c (process_init_constructor_record):
328         value-initialize members that are are not explicitely
329         initialized.
331 2010-04-07  Jie Zhang  <jie@codesourcery.com>
333         PR c++/42556
334         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
335         when all of its elements are non-constant and have been split out.
337 2010-04-06  Taras Glek  <taras@mozilla.com>
338             Jason Merrill  <jason@redhat.com>
340         * parser.c (cp_parser_class_specifier): Set class location to that
341         of IDENTIFIER_NODE instead of '{' when possible.
342         * semantics.c (begin_class_definition): Do not overide locations
343         with less precise ones.
345 2010-04-06  Jason Merrill  <jason@redhat.com>
347         PR c++/43648
348         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
350         PR c++/43621
351         * pt.c (maybe_update_decl_type): Check the return value from
352         push_scope.
354 2010-04-01  Jason Merrill  <jason@redhat.com>
356         * decl.c (next_initializable_field): No longer static.
357         * cp-tree.h: Declare it.
358         * call.c (build_aggr_conv): Fail if there are more initializers
359         than initializable fields.
361         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
362         instead of void_zero_node.
364 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
366         PR c++/43558
367         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
368         * pt.c (end_template_parm_list): Store sibling template parms of
369         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
370         (push_template_decl_real): Don't store the containing template decl
371         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
372         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
373         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
374         Simplify the logic.
376 2010-03-30  Jason Merrill  <jason@redhat.com>
378         PR c++/43076
379         * pt.c (push_template_decl_real): Deal better with running out of
380         scopes before running out of template parms.
382         PR c++/41185
383         PR c++/41786
384         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
385         function parameter context.  Don't print an error if parsing
386         tentatively.
388         PR c++/43559
389         * pt.c (more_specialized_fn): Don't control cv-qualifier check
390         with same_type_p.
392 2010-03-26  Jason Merrill  <jason@redhat.com>
394         PR c++/43509
395         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
396         c++0x mode, but not other type-names.
398 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
400         PR c++/43327
401         * pt.c (add_to_template_args): Support NULL ARGS;
402         (most_specialized_class): call coerce_template_parms on
403         template arguments passed to get_class_bindings. Use
404         add_to_template_args.
405         (unify): Handle VAR_DECLs.
407 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
409         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
410         into int.
411         * pt.c (get_template_parms_at_level): Adjust.
413 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
415         PR c++/43206
416         * cp-tree.h (get_template_parms_at_level): Declare ...
417         * pt.c (get_template_parms_at_level): ... new function.
418         * typeck.c (get_template_parms_of_dependent_type): If a template
419         type parm's DECL_CONTEXT isn't yet set, get its siblings from
420         current_template_parms. Use get_template_parms_at_level. Remove
421         useless test.
422         (incompatible_dependent_types_p): If we get empty parms from just one
423         of the template type parms we are comparing then the template parms are
424         incompatible.
426 2010-03-24  Jason Merrill  <jason@redhat.com>
428         PR c++/43502
429         * parser.c (make_declarator): Initialize id_loc.
430         (cp_parser_lambda_declarator_opt): And set it.
432 2010-03-23  Jason Merrill  <jason@redhat.com>
434         Make lambda conversion op and op() non-static.
435         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
436         Also add the thunk function returned by the conversion op.
437         Mark the conversion deleted if the op() is variadic.
438         * decl2.c (mark_used): Give helpful message about deleted conversion.
439         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
440         * semantics.c (finish_this_expr): Adjust.
441         * mangle.c (write_closure_type_name): Adjust.
442         * decl.c (grok_op_properties): Don't allow it.
443         * call.c (build_user_type_conversion_1): No static conversion ops.
444         (build_op_call): Or op().
446         * decl2.c (change_return_type): Fix 'this' quals.
448 2010-03-22  Jason Merrill  <jason@redhat.com>
450         PR c++/43333
451         * tree.c (pod_type_p): Use old meaning in C++98 mode.
453         PR c++/43281
454         * pt.c (contains_auto_r): New fn.
455         (do_auto_deduction): Use it.
456         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
458 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
460         PR c++/43081:
461         * decl2.c (grokfield): Handle invalid initializers for member
462         functions.
464 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
466         PR c++/43375
467         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
468         is NULL.
469         * decl2.c (vague_linkage_p): Likewise.
471 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
473         PR c++/43418
474         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
475         false, in the cp_parser_expression_statement call.
477 2010-03-05  Jason Merrill  <jason@redhat.com>
479         * mangle.c (mangle_decl): Give name collision error even without
480         ASM_OUTPUT_DEF.
482 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
484         * pt.c (process_partial_specialization): Use error_n instead of
485         error.
487 2010-03-03  Jason Merrill  <jason@redhat.com>
489         PR c++/12909
490         * mangle.c (mangle_decl): Handle VAR_DECL, too.
492 2010-03-03  Jason Merrill  <jason@redhat.com>
494         PR c++/12909
495         * mangle.c: Include cgraph.h.
496         (mangle_decl): If the mangled name will change in a later
497         ABI version, make the later mangled name an alias.
498         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
499         * Make-lang.in (mangle.o): Depend on cgraph.h.
500         * method.c (make_alias_for): Handle VAR_DECL, too.
501         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
502         * tree.c (no_linkage_check): Adjust.
503         * decl.c (maybe_commonize_var): Adjust.
504         * cp-tree.h: Adjust.
506 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
508         * pt.c (redeclare_class_template): Use error_n and inform_n.
510 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
512         PR c++/42748
513         * cp-tree.h (push_tinst_level): Declare.
514         (pop_tinst_level): Likewise.
515         * pt.c (push_tinst_level): Give it external linkage.
516         (pop_tinst_level): Likewise.
517         * mangle.c (mangle_decl_string): Set the source location to that
518         of the decl while mangling.
520 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
522         PR c++/42054
523         * pt.c (redeclare_class_template): Return false if there are erroneous
524         template parameters.
526 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
528         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
529         -ftemplate-depth=.
531 2010-02-24  Jason Merrill  <jason@redhat.com>
533         PR c++/12909
534         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
536         * class.c (layout_class_type): Don't give -Wabi warning for a bug
537         in a previous ABI version.
539 2010-02-23  Jason Merrill  <jason@redhat.com>
541         PR c++/43143
542         * typeck2.c (digest_init_r): Accept value init of array.
544 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
546         PR c++/43126
547         * typeck.c (convert_arguments): Update error message.
549 2010-02-22  Mike Stump  <mikestump@comcast.net>
551         PR c++/43125
552         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
554 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
556         PR c++/23510
557         * error.c (print_instantiation_partial_context_line): New.
558         (print_instantiation_partial_context): Print at most 12 contexts,
559         skip the rest with a message.
561 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
563         PR c++/42824
564         * pt.c (lookup_template_class): Better support of specialization
565         of member of class template implicit instantiation.
567 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
569         PR c++/35669
570         * call.c (conversion_null_warnings): Replace -Wconversion with
571         -Wconversion-null.
572         * cvt.c (build_expr_type_conversion): Likewise.
574 2010-02-18  Jason Merrill  <jason@redhat.com>
576         PR c++/42837
577         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
579         PR c++/43108
580         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
581         C build_binary_op.
582         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
583         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
585         PR c++/43070
586         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
588         PR c++/26261
589         PR c++/43101
590         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
591         (maybe_update_decl_type): New fn.
592         * parser.c (cp_parser_init_declarator): Use it.
594         PR c++/43109
595         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
597 2010-02-17  Jason Merrill  <jason@redhat.com>
599         PR c++/43075
600         * call.c (build_over_call): Don't create zero-sized assignments.
601         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
602         * cp-objcp-common.c (cp_expr_size): Remove.
603         * cp-tree.h: Remove prototype.
605         PR c++/43069
606         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
607         decl we looked up doesn't match.
609         PR c++/43093
610         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
611         have an INIT_EXPR anymore.
613         PR c++/43079
614         * pt.c (convert_nontype_argument): Change assert to test.
616 2010-02-16  Jason Merrill  <jason@redhat.com>
618         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
620         PR c++/43031
621         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
622         VIEW_CONVERT_EXPR for conversions between structural equality types
623         that the back end can't tell are the same.
625         PR c++/43036
626         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
627         cv-quals from element here.
628         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
630 2010-02-14  Jason Merrill  <jason@redhat.com>
632         PR c++/41997
633         * semantics.c (finish_compound_literal): Use
634         cp_apply_type_quals_to_decl when creating a static variable.
636 2010-02-12  Jason Merrill  <jason@redhat.com>
638         PR c++/43024
639         * name-lookup.h (current_binding_level): Check for null
640         cp_function_chain.
642 2010-02-12  Jason Merrill  <jason@redhat.com>
644         PR c++/43054
645         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
647 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
649         PR c++/43033
650         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
651         instead of x.
653 2010-02-10  Jason Merrill  <jason@redhat.com>
655         PR c++/41896
656         * semantics.c (outer_lambda_capture_p): Revert.
657         (add_capture): Only finish_member_declaration if
658         we're in the lambda class.
659         (register_capture_members): New.
660         * cp-tree.h: Declare it.
661         * parser.c (cp_parser_lambda_expression): Call it.
663 2010-02-10  Jason Merrill  <jason@redhat.com>
665         PR c++/41896
666         * semantics.c (outer_lambda_capture_p): Use current_function_decl
667         instead of current_class_type.
669 2010-02-10  Jason Merrill  <jason@redhat.com>
671         PR c++/42983, core issue 906
672         * method.c (defaultable_fn_check): Check virtualness.
674 2010-02-10  Jason Merrill  <jason@redhat.com>
676         PR c++/43016
677         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
679 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
681         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
682         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
683         translation.
684         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
685         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
686         (cp_parser_parameter_declaration)
687         (cp_parser_exception_specification_opt)
688         (cp_parser_exception_declaration): Likewise.
689         * pt.c (check_default_tmpl_args): Likewise.
690         * search.c (lookup_field_r): Likewise.
692 2010-02-09  Jason Merrill  <jason@redhat.com>
694         PR c++/42399
695         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
697 2010-02-09  Jason Merrill  <jason@redhat.com>
699         PR c++/42370
700         * decl2.c (change_return_type): New fn.
701         * semantics.c (apply_lambda_return_type): Use it.
702         * cp-tree.h: Declare it.
704 2010-02-05  Richard Guenther  <rguenther@suse.de>
706         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
707         * cp-lang.c: Include gt-cp-cp-lang.h.
708         * config-lang.in (gtfiles): Add cp/cp-lang.c.
710 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
712         PR c++/42915
713         * typeck.c (get_template_parms_of_dependent_type): Try getting
714         the template parameters fromt the type itself first.
716 2010-02-03  Jason Merrill  <jason@redhat.com>
718         PR c++/4926
719         PR c++/38600
720         * mangle.c (write_unqualified_id): Split out from write_expression.
721         (write_unqualified_name): Call it.
722         (write_member_name): Likewise.
723         (write_expression): Support TEMPLATE_ID_EXPR.
724         Disambiguate operator names.
726         PR c++/12909
727         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
728         -fabi-version=4.
730 2010-02-02  Jason Merrill  <jason@redhat.com>
732         PR c++/41090
733         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
734         * optimize.c (clone_body): Remap their initializers when making base
735         variants.
736         (maybe_clone_body): Complain if multiple clones aren't safe.
738 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
740         PR c++/42758
741         PR c++/42634
742         PR c++/42336
743         PR c++/42797
744         PR c++/42880
745         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
746         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
747         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
748         * pt.c (coerce_template_parms, type_unification_real,
749         expand_template_argument_pack, coerce_template_parameter_pack):
750         Set the non default template args count.
751         (current_template_args): Always set non defaulted
752         template args count when compiled with --enable-checking
753         (tsubst_template_args, type_unification_real): Propagate the non
754         defaulted template args count.
755         * error.c (get_non_default_template_args_count): Renamed
756         count_non_default_template_args into this. Don't calculate the
757         non default template argument count anymore. Use the new
758         accessor macros above to get it.
759         (dump_template_argument_list, dump_type, dump_decl,
760         dump_template_parms): Adjust.
761         * parser.c (cp_parser_template_argument_list): Always set defaulted
762         template args count when compiled with --enable-checking.
764 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
766         * decl.c (redeclaration_error_message): Wrap the return messages into
767         G_() for easy translation.
769 2010-01-28  Jason Merrill  <jason@redhat.com>
771         PR c++/42880
772         * semantics.c (begin_class_definition): Don't use type_as_string.
774 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
776         PR c++/42713
777         PR c++/42820
778         * typeck.c (get_template_parms_of_dependent_type): Factorized
779         this out of incompatible_template_type_parms_p
780         (incompatible_dependent_types_p): Renamed
781         incompatible_template_type_parms_p into this. Make it detect
782         two incompatible dependent typedefs too.
783         (structural_comptypes): Use incompatible_dependent_types_p.
784         * pt.c (get_template_info):
785         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
787 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
788             Jason Merrill  <jason@redhat.com>
790         * mangle.c (write_type): Mangle transparent record as member type.
791         * semantics.c (begin_class_definition): Recognize decimal classes
792         and set TYPE_TRANSPARENT_AGGR.
794 2010-01-20  Jason Merrill  <jason@redhat.com>
796         PR c++/42338
797         * mangle.c (write_expression): Handle tree codes that have extra
798         arguments in the middle-end.
800 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
802         PR c++/42038
803         * except.c (expand_start_catch_block): Deal correctly with
804         do_begin_catch returning error_mark_node.
806 2010-01-20  Jason Merrill  <jason@redhat.com>
808         PR c++/41788
809         * class.c (layout_class_type): Set packed_maybe_necessary for packed
810         non-PODs.
812         PR c++/41920
813         * semantics.c (build_lambda_object): Call mark_used on captured
814         variables.
816         PR c++/40750
817         * decl.c (grokdeclarator): Clear type_quals for a member function
818         declared using a typedef.  Don't complain about adding cv-quals
819         to a function typedef in C++0x mode.
821 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
823         * decl.c (create_array_type_for_decl): Remove set but not used
824         variable error_msg.  Remove break stmts after return stmts.
826 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
828         * error.c (dump_template_parms, count_non_default_template_args):
829         Revert fix of PR c++/42634.
831 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
833         PR c++/42634
834         * error.c (dump_template_parms): Use innermost template
835         arguments before calling count_non_default_template_args.
836         (count_non_default_template_args): We are being called with
837         template innermost arguments now. There is no need to ensure
838         that again.
840 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
842         PR c++/42766
843         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
845 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
847         PR c++/42697
848         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
850 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
852         PR c++/42697
853         *pt.c (tsubst_decl): Get the arguments of a specialization from
854         the specialization template, not from the most general template.
856 2010-01-16  Jason Merrill  <jason@redhat.com>
858         PR c++/42761
859         * semantics.c (finish_decltype_type): Within a template, treat
860         unresolved CALL_EXPR as dependent.
862 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
864         * error.c (dump_template_parms,count_non_default_template_args):
865         Revert changes of PR c++/42634.
867 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
869         PR middle-end/42674
870         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
871         functions with noreturn attribute.
873 2010-01-14  Jason Merrill  <jason@redhat.com>
875         PR c++/42701
876         * call.c (build_new_method_call): Don't free the vec here.
878         PR c++/42655
879         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
881 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
883         PR c++/42634
884         * error.c (dump_template_parms): Use innermost template
885         arguments before calling count_non_default_template_args.
886         (count_non_default_template_args): We are being called with
887         template innermost arguments now. There is no need to ensure
888         that again.
890 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
892         c++/40155
893         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
894         arguments that were previously deduced.
896 2010-01-05  Jason Merrill  <jason@redhat.com>
898         * pt.c (unify_pack_expansion): Handle deduction from init-list.
899         * call.c (build_over_call): Don't complain about it.
901 2010-01-04  Jason Merrill  <jason@redhat.com>
903         PR c++/42555
904         * pt.c (tsubst_decl): Don't apply type attributes in place.
906         PR c++/42567
907         * semantics.c (describable_type): Remove decltype comment and
908         semantics.
912 Copyright (C) 2010 Free Software Foundation, Inc.
914 Copying and distribution of this file, with or without modification,
915 are permitted in any medium without royalty provided the copyright
916 notice and this notice are preserved.