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