/cp
[official-gcc.git] / gcc / cp / ChangeLog
blobe186a5d1b56657bc852f8f1937f663ac4574cb8f
1 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
3         PR c++/43028
4         * pt.c (unify): Check each elt for error_mark_node.
6 2010-05-04  Jason Merrill  <jason@redhat.com>
8         PR c++/38064
9         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
11 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
13         PR c++/43705
14         * call.c (build_new_method_call): Return error_mark_node if fns is
15         NULL_TREE.
17 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
19         PR c++/43953
20         * pt.c (most_specialized_class): Pretend we are processing
21         a template decl during the call to coerce_template_parms.
23 2010-05-03  Jason Merrill  <jason@redhat.com>
25         PR c++/42810
26         PR c++/43680
27         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
28         from the selected underlying type unless -fstrict-enums.  Set
29         ENUM_UNDERLYING_TYPE to have the restricted range.
30         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
31         * class.c (check_bitfield_decl): Likewise.
33 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
35         PR c++/43951
36         * init.c (build_new_1): Revert the accidental checkin in
37         revision 158918.
39 2010-04-30  Jason Merrill  <jason@redhat.com>
41         PR c++/43868
42         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
43         (pp_cxx_type_specifier_seq): ...here.
45 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
47         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
48         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
50 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
52         PR c++/43779
53         * typeck.c (warn_args_num): New function.
54         (convert_arguments): Use warn_args_num to print the diagnostic
55         messages. 
57 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
59         PR c++/43890
60         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
61         user-provided constructor while recursing.
63 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
65         PR c++/9335
66         * error.c (print_instantiation_partial_context_line): Handle
67         recursive instantiation.
68         (print_instantiation_partial_context): Likewise.
70 2010-04-27  Jason Merrill  <jason@redhat.com>
72         * init.c (perform_member_init): Check CLASS_TYPE_P.
74 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
76         PR c++/29043
77         * init.c (perform_member_init): check for uninitialized const or
78         reference members, including array types.
80 2010-04-24  Jason Merrill  <jason@redhat.com>
82         * tree.c (get_fns): Split out from get_first_fn.
83         * cp-tree.h: Declare it.
84         * search.c (shared_member_p): Use it.
85         * semantics.c (finish_qualified_id_expr): Simplify.
86         (finish_id_expression): Simplify.
88         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
89         whenever object is NULL_TREE.  Don't do 'this' capture here.
90         (finish_qualified_id_expr): Pass NULL_TREE.
91         (finish_id_expression): Likewise.
92         (lambda_expr_this_capture): Likewise.
94         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
95         rather than checking current_class_ref directly.
96         (finish_call_expr): Likewise.
98         PR c++/43856
99         * name-lookup.c (qualify_lookup): Disqualify lambda op().
100         * class.c (current_nonlambda_class_type): New fn.
101         * semantics.c (nonlambda_method_basetype): New.
102         * cp-tree.h: Declare them.
103         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
105         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
107         PR c++/43875
108         * semantics.c (lambda_return_type): Complain about
109         braced-init-list.
111         PR c++/43790
112         * tree.c (cv_unqualified): Handle error_mark_node.
114         PR c++/41468
115         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
116         if we don't want errors.
118         PR c++/41468
119         * class.c (convert_to_base): Add complain parameter.  Pass
120         ba_quiet to lookup_base if we don't want errors.
121         (build_vfield_ref): Pass complain to convert_to_base.
122         * call.c (convert_like_real): Likewise.
123         (initialize_reference): Likewise.
124         (perform_direct_initialization_if_possible): Pass complain to
125         convert_like_real.
126         * cp-tree.h: Adjust.
128 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
129             Jason Merrill  <jason@redhat.com>
131         PR c++/42844
132         * decl.c (check_for_uninitialized_const_var): Handle classes that need
133         constructing, too.
134         (check_initializer): Call it for classes that need constructing, too.
135         * class.c (in_class_defaulted_default_constructor): New.
136         * cp-tree.h: Declare it.
138 2010-04-20  Jason Merrill  <jason@redhat.com>
140         PR c++/9335
141         * init.c (constant_value_1): Treat error_mark_node as a constant
142         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
143         * cvt.c (ocp_convert): Handle getting error_mark_node from
144         integral_constant_value.
145         * decl.c (compute_array_index_type): Likewise.
147 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
149         PR c++/43800
150         PR c++/43704
151         * typeck.c (incompatible_dependent_types_p): If one of the
152         compared types if not a typedef then honour their main variant
153         equivalence.
155 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
157         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
159 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
161         PR c++/43704
162         * typeck.c (structural_comptypes): Test dependent typedefs
163         incompatibility before testing for their main variant based
164         equivalence.
166 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
168         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
169         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
171 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
173         * decl.c (cxx_init_decl_processing): Remove second argument in call to
174         build_common_tree_nodes.
176 2010-04-14  Jason Merrill  <jason@redhat.com>
178         PR c++/36625
179         * parser.c (cp_parser_parenthesized_expression_list): Change
180         is_attribute_list parm to int to indicate whether or not to
181         handle initial identifier specially.
182         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
184 2010-04-13  Jason Merrill  <jason@redhat.com>
186         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
187         CLASS_TYPE_P.
188         * parser.c (cp_parser_lambda_expression): Complain about lambda in
189         unevaluated context.
190         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
192 2010-04-12  Jason Merrill  <jason@redhat.com>
194         PR c++/43641
195         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
196         return value directly.
198         * call.c (type_decays_to): Call cv_unqualified for non-class type.
200 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
202         PR c++/25811
203         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
204         * init.c (build_new_1): Check for uninitialized const members and
205         uninitialized reference members, when using new without
206         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
207         (diagnose_uninitialized_cst_or_ref_member): Define, call
208         diagnose_uninitialized_cst_or_ref_member_1.
209         (diagnose_uninitialized_cst_or_ref_member_1): New function.
211 2010-04-12  Richard Guenther  <rguenther@suse.de>
213         PR c++/43611
214         * semantics.c (expand_or_defer_fn_1): Do not keep extern
215         template inline functions.
217 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
219         PR c++/28584
220         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
221         pointer type.
223 2010-04-07  Jason Merrill  <jason@redhat.com>
225         PR c++/43016
226         * decl.c (start_preparsed_function): Do defer nested functions.
228         PR c++/11094, DR 408
229         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
230         * decl2.c (finish_static_data_member_decl): Set it.
231         * decl.c (duplicate_decls): Propagate it.
232         * pt.c (tsubst_decl): Don't substitute the domain of an array
233         VAR_DECL if it's set.
234         (regenerate_decl_from_template): Substitute it here.
235         (type_dependent_expression_p): Return true if it's set.
236         * semantics.c (finish_decltype_type): Instantiate such a variable.
237         * typeck.c (cxx_sizeof_expr): Likewise.
238         (strip_array_domain): New.
240         PR c++/43145
241         * name-lookup.c (current_decl_namespace): Non-static.
242         (pop_nested_namespace): Sanity check.
243         * cp-tree.h: Declare current_decl_namespace.
244         * decl.c (grokvardecl): Use it instead of current_namespace.
245         (grokfndecl): Likewise.
247         PR c++/38392
248         * pt.c (tsubst_friend_function): Instatiate a friend that has already
249         been used.
251         * pt.c (print_template_statistics): New.
252         * cp-tree.h: Declare it.
253         * tree.c (cxx_print_statistics): Call it.
255         PR c++/41970
256         * decl.c (grokvardecl): Tweak warning message.
257         (grokfndecl): Likewise.
259 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
261         PR c++/42697
262         *pt.c (tsubst_decl): Get the arguments of a specialization from
263         the specialization template, not from the most general template.
265 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
267         PR c++/40239
268         * typeck2.c (process_init_constructor_record):
269         value-initialize members that are are not explicitely
270         initialized.
272 2010-04-07  Jie Zhang  <jie@codesourcery.com>
274         PR c++/42556
275         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
276         when all of its elements are non-constant and have been split out.
278 2010-04-06  Taras Glek  <taras@mozilla.com>
279             Jason Merrill  <jason@redhat.com>
281         * parser.c (cp_parser_class_specifier): Set class location to that
282         of IDENTIFIER_NODE instead of '{' when possible.
283         * semantics.c (begin_class_definition): Do not overide locations
284         with less precise ones.
286 2010-04-06  Jason Merrill  <jason@redhat.com>
288         PR c++/43648
289         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
291         PR c++/43621
292         * pt.c (maybe_update_decl_type): Check the return value from
293         push_scope.
295 2010-04-01  Jason Merrill  <jason@redhat.com>
297         * decl.c (next_initializable_field): No longer static.
298         * cp-tree.h: Declare it.
299         * call.c (build_aggr_conv): Fail if there are more initializers
300         than initializable fields.
302         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
303         instead of void_zero_node.
305 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
307         PR c++/43558
308         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
309         * pt.c (end_template_parm_list): Store sibling template parms of
310         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
311         (push_template_decl_real): Don't store the containing template decl
312         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
313         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
314         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
315         Simplify the logic.
317 2010-03-30  Jason Merrill  <jason@redhat.com>
319         PR c++/43076
320         * pt.c (push_template_decl_real): Deal better with running out of
321         scopes before running out of template parms.
323         PR c++/41185
324         PR c++/41786
325         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
326         function parameter context.  Don't print an error if parsing
327         tentatively.
329         PR c++/43559
330         * pt.c (more_specialized_fn): Don't control cv-qualifier check
331         with same_type_p.
333 2010-03-26  Jason Merrill  <jason@redhat.com>
335         PR c++/43509
336         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
337         c++0x mode, but not other type-names.
339 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
341         PR c++/43327
342         * pt.c (add_to_template_args): Support NULL ARGS;
343         (most_specialized_class): call coerce_template_parms on
344         template arguments passed to get_class_bindings. Use
345         add_to_template_args.
346         (unify): Handle VAR_DECLs.
348 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
350         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
351         into int.
352         * pt.c (get_template_parms_at_level): Adjust.
354 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
356         PR c++/43206
357         * cp-tree.h (get_template_parms_at_level): Declare ...
358         * pt.c (get_template_parms_at_level): ... new function.
359         * typeck.c (get_template_parms_of_dependent_type): If a template
360         type parm's DECL_CONTEXT isn't yet set, get its siblings from
361         current_template_parms. Use get_template_parms_at_level. Remove
362         useless test.
363         (incompatible_dependent_types_p): If we get empty parms from just one
364         of the template type parms we are comparing then the template parms are
365         incompatible.
367 2010-03-24  Jason Merrill  <jason@redhat.com>
369         PR c++/43502
370         * parser.c (make_declarator): Initialize id_loc.
371         (cp_parser_lambda_declarator_opt): And set it.
373 2010-03-23  Jason Merrill  <jason@redhat.com>
375         Make lambda conversion op and op() non-static.
376         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
377         Also add the thunk function returned by the conversion op.
378         Mark the conversion deleted if the op() is variadic.
379         * decl2.c (mark_used): Give helpful message about deleted conversion.
380         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
381         * semantics.c (finish_this_expr): Adjust.
382         * mangle.c (write_closure_type_name): Adjust.
383         * decl.c (grok_op_properties): Don't allow it.
384         * call.c (build_user_type_conversion_1): No static conversion ops.
385         (build_op_call): Or op().
387         * decl2.c (change_return_type): Fix 'this' quals.
389 2010-03-22  Jason Merrill  <jason@redhat.com>
391         PR c++/43333
392         * tree.c (pod_type_p): Use old meaning in C++98 mode.
394         PR c++/43281
395         * pt.c (contains_auto_r): New fn.
396         (do_auto_deduction): Use it.
397         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
399 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
401         PR c++/43081:
402         * decl2.c (grokfield): Handle invalid initializers for member
403         functions.
405 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
407         PR c++/43375
408         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
409         is NULL.
410         * decl2.c (vague_linkage_p): Likewise.
412 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
414         PR c++/43418
415         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
416         false, in the cp_parser_expression_statement call.
418 2010-03-05  Jason Merrill  <jason@redhat.com>
420         * mangle.c (mangle_decl): Give name collision error even without
421         ASM_OUTPUT_DEF.
423 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
425         * pt.c (process_partial_specialization): Use error_n instead of
426         error.
428 2010-03-03  Jason Merrill  <jason@redhat.com>
430         PR c++/12909
431         * mangle.c (mangle_decl): Handle VAR_DECL, too.
433 2010-03-03  Jason Merrill  <jason@redhat.com>
435         PR c++/12909
436         * mangle.c: Include cgraph.h.
437         (mangle_decl): If the mangled name will change in a later
438         ABI version, make the later mangled name an alias.
439         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
440         * Make-lang.in (mangle.o): Depend on cgraph.h.
441         * method.c (make_alias_for): Handle VAR_DECL, too.
442         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
443         * tree.c (no_linkage_check): Adjust.
444         * decl.c (maybe_commonize_var): Adjust.
445         * cp-tree.h: Adjust.
447 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
449         * pt.c (redeclare_class_template): Use error_n and inform_n.
451 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
453         PR c++/42748
454         * cp-tree.h (push_tinst_level): Declare.
455         (pop_tinst_level): Likewise.
456         * pt.c (push_tinst_level): Give it external linkage.
457         (pop_tinst_level): Likewise.
458         * mangle.c (mangle_decl_string): Set the source location to that
459         of the decl while mangling.
461 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
463         PR c++/42054
464         * pt.c (redeclare_class_template): Return false if there are erroneous
465         template parameters.
467 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
469         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
470         -ftemplate-depth=.
472 2010-02-24  Jason Merrill  <jason@redhat.com>
474         PR c++/12909
475         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
477         * class.c (layout_class_type): Don't give -Wabi warning for a bug
478         in a previous ABI version.
480 2010-02-23  Jason Merrill  <jason@redhat.com>
482         PR c++/43143
483         * typeck2.c (digest_init_r): Accept value init of array.
485 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
487         PR c++/43126
488         * typeck.c (convert_arguments): Update error message.
490 2010-02-22  Mike Stump  <mikestump@comcast.net>
492         PR c++/43125
493         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
495 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
497         PR c++/23510
498         * error.c (print_instantiation_partial_context_line): New.
499         (print_instantiation_partial_context): Print at most 12 contexts,
500         skip the rest with a message.
502 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
504         PR c++/42824
505         * pt.c (lookup_template_class): Better support of specialization
506         of member of class template implicit instantiation.
508 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
510         PR c++/35669
511         * call.c (conversion_null_warnings): Replace -Wconversion with
512         -Wconversion-null.
513         * cvt.c (build_expr_type_conversion): Likewise.
515 2010-02-18  Jason Merrill  <jason@redhat.com>
517         PR c++/42837
518         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
520         PR c++/43108
521         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
522         C build_binary_op.
523         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
524         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
526         PR c++/43070
527         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
529         PR c++/26261
530         PR c++/43101
531         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
532         (maybe_update_decl_type): New fn.
533         * parser.c (cp_parser_init_declarator): Use it.
535         PR c++/43109
536         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
538 2010-02-17  Jason Merrill  <jason@redhat.com>
540         PR c++/43075
541         * call.c (build_over_call): Don't create zero-sized assignments.
542         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
543         * cp-objcp-common.c (cp_expr_size): Remove.
544         * cp-tree.h: Remove prototype.
546         PR c++/43069
547         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
548         decl we looked up doesn't match.
550         PR c++/43093
551         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
552         have an INIT_EXPR anymore.
554         PR c++/43079
555         * pt.c (convert_nontype_argument): Change assert to test.
557 2010-02-16  Jason Merrill  <jason@redhat.com>
559         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
561         PR c++/43031
562         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
563         VIEW_CONVERT_EXPR for conversions between structural equality types
564         that the back end can't tell are the same.
566         PR c++/43036
567         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
568         cv-quals from element here.
569         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
571 2010-02-14  Jason Merrill  <jason@redhat.com>
573         PR c++/41997
574         * semantics.c (finish_compound_literal): Use
575         cp_apply_type_quals_to_decl when creating a static variable.
577 2010-02-12  Jason Merrill  <jason@redhat.com>
579         PR c++/43024
580         * name-lookup.h (current_binding_level): Check for null
581         cp_function_chain.
583 2010-02-12  Jason Merrill  <jason@redhat.com>
585         PR c++/43054
586         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
588 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
590         PR c++/43033
591         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
592         instead of x.
594 2010-02-10  Jason Merrill  <jason@redhat.com>
596         PR c++/41896
597         * semantics.c (outer_lambda_capture_p): Revert.
598         (add_capture): Only finish_member_declaration if
599         we're in the lambda class.
600         (register_capture_members): New.
601         * cp-tree.h: Declare it.
602         * parser.c (cp_parser_lambda_expression): Call it.
604 2010-02-10  Jason Merrill  <jason@redhat.com>
606         PR c++/41896
607         * semantics.c (outer_lambda_capture_p): Use current_function_decl
608         instead of current_class_type.
610 2010-02-10  Jason Merrill  <jason@redhat.com>
612         PR c++/42983, core issue 906
613         * method.c (defaultable_fn_check): Check virtualness.
615 2010-02-10  Jason Merrill  <jason@redhat.com>
617         PR c++/43016
618         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
620 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
622         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
623         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
624         translation.
625         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
626         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
627         (cp_parser_parameter_declaration)
628         (cp_parser_exception_specification_opt)
629         (cp_parser_exception_declaration): Likewise.
630         * pt.c (check_default_tmpl_args): Likewise.
631         * search.c (lookup_field_r): Likewise.
633 2010-02-09  Jason Merrill  <jason@redhat.com>
635         PR c++/42399
636         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
638 2010-02-09  Jason Merrill  <jason@redhat.com>
640         PR c++/42370
641         * decl2.c (change_return_type): New fn.
642         * semantics.c (apply_lambda_return_type): Use it.
643         * cp-tree.h: Declare it.
645 2010-02-05  Richard Guenther  <rguenther@suse.de>
647         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
648         * cp-lang.c: Include gt-cp-cp-lang.h.
649         * config-lang.in (gtfiles): Add cp/cp-lang.c.
651 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
653         PR c++/42915
654         * typeck.c (get_template_parms_of_dependent_type): Try getting
655         the template parameters fromt the type itself first.
657 2010-02-03  Jason Merrill  <jason@redhat.com>
659         PR c++/4926
660         PR c++/38600
661         * mangle.c (write_unqualified_id): Split out from write_expression.
662         (write_unqualified_name): Call it.
663         (write_member_name): Likewise.
664         (write_expression): Support TEMPLATE_ID_EXPR.
665         Disambiguate operator names.
667         PR c++/12909
668         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
669         -fabi-version=4.
671 2010-02-02  Jason Merrill  <jason@redhat.com>
673         PR c++/41090
674         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
675         * optimize.c (clone_body): Remap their initializers when making base
676         variants.
677         (maybe_clone_body): Complain if multiple clones aren't safe.
679 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
681         PR c++/42758
682         PR c++/42634
683         PR c++/42336
684         PR c++/42797
685         PR c++/42880
686         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
687         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
688         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
689         * pt.c (coerce_template_parms, type_unification_real,
690         expand_template_argument_pack, coerce_template_parameter_pack):
691         Set the non default template args count.
692         (current_template_args): Always set non defaulted
693         template args count when compiled with --enable-checking
694         (tsubst_template_args, type_unification_real): Propagate the non
695         defaulted template args count.
696         * error.c (get_non_default_template_args_count): Renamed
697         count_non_default_template_args into this. Don't calculate the
698         non default template argument count anymore. Use the new
699         accessor macros above to get it.
700         (dump_template_argument_list, dump_type, dump_decl,
701         dump_template_parms): Adjust.
702         * parser.c (cp_parser_template_argument_list): Always set defaulted
703         template args count when compiled with --enable-checking.
705 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
707         * decl.c (redeclaration_error_message): Wrap the return messages into
708         G_() for easy translation.
710 2010-01-28  Jason Merrill  <jason@redhat.com>
712         PR c++/42880
713         * semantics.c (begin_class_definition): Don't use type_as_string.
715 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
717         PR c++/42713
718         PR c++/42820
719         * typeck.c (get_template_parms_of_dependent_type): Factorized
720         this out of incompatible_template_type_parms_p
721         (incompatible_dependent_types_p): Renamed
722         incompatible_template_type_parms_p into this. Make it detect
723         two incompatible dependent typedefs too.
724         (structural_comptypes): Use incompatible_dependent_types_p.
725         * pt.c (get_template_info):
726         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
728 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
729             Jason Merrill  <jason@redhat.com>
731         * mangle.c (write_type): Mangle transparent record as member type.
732         * semantics.c (begin_class_definition): Recognize decimal classes
733         and set TYPE_TRANSPARENT_AGGR.
735 2010-01-20  Jason Merrill  <jason@redhat.com>
737         PR c++/42338
738         * mangle.c (write_expression): Handle tree codes that have extra
739         arguments in the middle-end.
741 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
743         PR c++/42038
744         * except.c (expand_start_catch_block): Deal correctly with
745         do_begin_catch returning error_mark_node.
747 2010-01-20  Jason Merrill  <jason@redhat.com>
749         PR c++/41788
750         * class.c (layout_class_type): Set packed_maybe_necessary for packed
751         non-PODs.
753         PR c++/41920
754         * semantics.c (build_lambda_object): Call mark_used on captured
755         variables.
757         PR c++/40750
758         * decl.c (grokdeclarator): Clear type_quals for a member function
759         declared using a typedef.  Don't complain about adding cv-quals
760         to a function typedef in C++0x mode.
762 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
764         * decl.c (create_array_type_for_decl): Remove set but not used
765         variable error_msg.  Remove break stmts after return stmts.
767 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
769         * error.c (dump_template_parms, count_non_default_template_args):
770         Revert fix of PR c++/42634.
772 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
774         PR c++/42634
775         * error.c (dump_template_parms): Use innermost template
776         arguments before calling count_non_default_template_args.
777         (count_non_default_template_args): We are being called with
778         template innermost arguments now. There is no need to ensure
779         that again.
781 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
783         PR c++/42766
784         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
786 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
788         PR c++/42697
789         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
791 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
793         PR c++/42697
794         *pt.c (tsubst_decl): Get the arguments of a specialization from
795         the specialization template, not from the most general template.
797 2010-01-16  Jason Merrill  <jason@redhat.com>
799         PR c++/42761
800         * semantics.c (finish_decltype_type): Within a template, treat
801         unresolved CALL_EXPR as dependent.
803 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
805         * error.c (dump_template_parms,count_non_default_template_args):
806         Revert changes of PR c++/42634.
808 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
810         PR middle-end/42674
811         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
812         functions with noreturn attribute.
814 2010-01-14  Jason Merrill  <jason@redhat.com>
816         PR c++/42701
817         * call.c (build_new_method_call): Don't free the vec here.
819         PR c++/42655
820         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
822 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
824         PR c++/42634
825         * error.c (dump_template_parms): Use innermost template
826         arguments before calling count_non_default_template_args.
827         (count_non_default_template_args): We are being called with
828         template innermost arguments now. There is no need to ensure
829         that again.
831 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
833         c++/40155
834         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
835         arguments that were previously deduced.
837 2010-01-05  Jason Merrill  <jason@redhat.com>
839         * pt.c (unify_pack_expansion): Handle deduction from init-list.
840         * call.c (build_over_call): Don't complain about it.
842 2010-01-04  Jason Merrill  <jason@redhat.com>
844         PR c++/42555
845         * pt.c (tsubst_decl): Don't apply type attributes in place.
847         PR c++/42567
848         * semantics.c (describable_type): Remove decltype comment and
849         semantics.
853 Copyright (C) 2010 Free Software Foundation, Inc.
855 Copying and distribution of this file, with or without modification,
856 are permitted in any medium without royalty provided the copyright
857 notice and this notice are preserved.