* semantics.c (finish_non_static_data_member): Call maybe_dummy_object
[official-gcc/constexpr.git] / gcc / cp / ChangeLog
blobf19d06f9dc60df0667dfb33cfad6f6275e663c95
1 2010-04-27  Jason Merrill  <jason@redhat.com>
3         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
4         whenever object is NULL_TREE.  Don't do 'this' capture here.
5         (finish_qualified_id_expr): Pass NULL_TREE.
6         (finish_id_expression): Likewise.
7         (lambda_expr_this_capture): Likewise.
9         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
10         rather than checking current_class_ref directly.
11         (finish_call_expr): Likewise.
13         PR c++/43856
14         * name-lookup.c (qualify_lookup): Disqualify lambda op().
15         * class.c (current_nonlambda_class_type): New fn.
16         * semantics.c (nonlambda_method_basetype): New.
17         * cp-tree.h: Declare them.
18         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
20         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
22         PR c++/43875
23         * semantics.c (lambda_return_type): Complain about
24         braced-init-list.
26         PR c++/43790
27         * tree.c (cv_unqualified): Handle error_mark_node.
29         PR c++/41468
30         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
31         if we don't want errors.
33         PR c++/41468
34         * class.c (convert_to_base): Add complain parameter.  Pass
35         ba_quiet to lookup_base if we don't want errors.
36         (build_vfield_ref): Pass complain to convert_to_base.
37         * call.c (convert_like_real): Likewise.
38         (initialize_reference): Likewise.
39         (perform_direct_initialization_if_possible): Pass complain to
40         convert_like_real.
41         * cp-tree.h: Adjust.
43 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
44             Jason Merrill  <jason@redhat.com>
46         PR c++/42844
47         * decl.c (check_for_uninitialized_const_var): Handle classes that need
48         constructing, too.
49         (check_initializer): Call it for classes that need constructing, too.
50         * class.c (in_class_defaulted_default_constructor): New.
51         * cp-tree.h: Declare it.
53 2010-04-20  Jason Merrill  <jason@redhat.com>
55         PR c++/9335
56         * init.c (constant_value_1): Treat error_mark_node as a constant
57         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
58         * cvt.c (ocp_convert): Handle getting error_mark_node from
59         integral_constant_value.
60         * decl.c (compute_array_index_type): Likewise.
62 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
64         PR c++/43800
65         PR c++/43704
66         * typeck.c (incompatible_dependent_types_p): If one of the
67         compared types if not a typedef then honour their main variant
68         equivalence.
70 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
72         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
74 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
76         PR c++/43704
77         * typeck.c (structural_comptypes): Test dependent typedefs
78         incompatibility before testing for their main variant based
79         equivalence.
81 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
83         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
84         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
86 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
88         * decl.c (cxx_init_decl_processing): Remove second argument in call to
89         build_common_tree_nodes.
91 2010-04-14  Jason Merrill  <jason@redhat.com>
93         PR c++/36625
94         * parser.c (cp_parser_parenthesized_expression_list): Change
95         is_attribute_list parm to int to indicate whether or not to
96         handle initial identifier specially.
97         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
99 2010-04-13  Jason Merrill  <jason@redhat.com>
101         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
102         CLASS_TYPE_P.
103         * parser.c (cp_parser_lambda_expression): Complain about lambda in
104         unevaluated context.
105         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
107 2010-04-12  Jason Merrill  <jason@redhat.com>
109         PR c++/43641
110         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
111         return value directly.
113         * call.c (type_decays_to): Call cv_unqualified for non-class type.
115 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
117         PR c++/25811
118         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
119         * init.c (build_new_1): Check for uninitialized const members and
120         uninitialized reference members, when using new without
121         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
122         (diagnose_uninitialized_cst_or_ref_member): Define, call
123         diagnose_uninitialized_cst_or_ref_member_1.
124         (diagnose_uninitialized_cst_or_ref_member_1): New function.
126 2010-04-12  Richard Guenther  <rguenther@suse.de>
128         PR c++/43611
129         * semantics.c (expand_or_defer_fn_1): Do not keep extern
130         template inline functions.
132 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
134         PR c++/28584
135         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
136         pointer type.
138 2010-04-07  Jason Merrill  <jason@redhat.com>
140         PR c++/43016
141         * decl.c (start_preparsed_function): Do defer nested functions.
143         PR c++/11094, DR 408
144         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
145         * decl2.c (finish_static_data_member_decl): Set it.
146         * decl.c (duplicate_decls): Propagate it.
147         * pt.c (tsubst_decl): Don't substitute the domain of an array
148         VAR_DECL if it's set.
149         (regenerate_decl_from_template): Substitute it here.
150         (type_dependent_expression_p): Return true if it's set.
151         * semantics.c (finish_decltype_type): Instantiate such a variable.
152         * typeck.c (cxx_sizeof_expr): Likewise.
153         (strip_array_domain): New.
155         * name-lookup.c (current_decl_namespace): Non-static.
156         (pop_nested_namespace): Sanity check.
157         * cp-tree.h: Declare current_decl_namespace.
158         * decl.c (grokvardecl): Use it instead of current_namespace.
159         (grokfndecl): Likewise.
161         PR c++/38392
162         * pt.c (tsubst_friend_function): Instatiate a friend that has already
163         been used.
165         * pt.c (print_template_statistics): New.
166         * cp-tree.h: Declare it.
167         * tree.c (cxx_print_statistics): Call it.
169         PR c++/41970
170         * decl.c (grokvardecl): Tweak warning message.
171         (grokfndecl): Likewise.
173 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
175         PR c++/42697
176         *pt.c (tsubst_decl): Get the arguments of a specialization from
177         the specialization template, not from the most general template.
179 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
181         PR c++/40239
182         * typeck2.c (process_init_constructor_record):
183         value-initialize members that are are not explicitely
184         initialized.
186 2010-04-07  Jie Zhang  <jie@codesourcery.com>
188         PR c++/42556
189         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
190         when all of its elements are non-constant and have been split out.
192 2010-04-06  Taras Glek  <taras@mozilla.com>
193             Jason Merrill  <jason@redhat.com>
195         * parser.c (cp_parser_class_specifier): Set class location to that
196         of IDENTIFIER_NODE instead of '{' when possible.
197         * semantics.c (begin_class_definition): Do not overide locations
198         with less precise ones.
200 2010-04-06  Jason Merrill  <jason@redhat.com>
202         PR c++/43648
203         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
205         PR c++/43621
206         * pt.c (maybe_update_decl_type): Check the return value from
207         push_scope.
209 2010-04-01  Jason Merrill  <jason@redhat.com>
211         * decl.c (next_initializable_field): No longer static.
212         * cp-tree.h: Declare it.
213         * call.c (build_aggr_conv): Fail if there are more initializers
214         than initializable fields.
216         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
217         instead of void_zero_node.
219 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
221         PR c++/43558
222         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
223         * pt.c (end_template_parm_list): Store sibling template parms of
224         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
225         (push_template_decl_real): Don't store the containing template decl
226         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
227         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
228         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
229         Simplify the logic.
231 2010-03-30  Jason Merrill  <jason@redhat.com>
233         PR c++/43076
234         * pt.c (push_template_decl_real): Deal better with running out of
235         scopes before running out of template parms.
237         PR c++/41185
238         PR c++/41786
239         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
240         function parameter context.  Don't print an error if parsing
241         tentatively.
243         PR c++/43559
244         * pt.c (more_specialized_fn): Don't control cv-qualifier check
245         with same_type_p.
247 2010-03-26  Jason Merrill  <jason@redhat.com>
249         PR c++/43509
250         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
251         c++0x mode, but not other type-names.
253 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
255         PR c++/43327
256         * pt.c (add_to_template_args): Support NULL ARGS;
257         (most_specialized_class): call coerce_template_parms on
258         template arguments passed to get_class_bindings. Use
259         add_to_template_args.
260         (unify): Handle VAR_DECLs.
262 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
264         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
265         into int.
266         * pt.c (get_template_parms_at_level): Adjust.
268 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
270         PR c++/43206
271         * cp-tree.h (get_template_parms_at_level): Declare ...
272         * pt.c (get_template_parms_at_level): ... new function.
273         * typeck.c (get_template_parms_of_dependent_type): If a template
274         type parm's DECL_CONTEXT isn't yet set, get its siblings from
275         current_template_parms. Use get_template_parms_at_level. Remove
276         useless test.
277         (incompatible_dependent_types_p): If we get empty parms from just one
278         of the template type parms we are comparing then the template parms are
279         incompatible.
281 2010-03-24  Jason Merrill  <jason@redhat.com>
283         PR c++/43502
284         * parser.c (make_declarator): Initialize id_loc.
285         (cp_parser_lambda_declarator_opt): And set it.
287 2010-03-23  Jason Merrill  <jason@redhat.com>
289         Make lambda conversion op and op() non-static.
290         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
291         Also add the thunk function returned by the conversion op.
292         Mark the conversion deleted if the op() is variadic.
293         * decl2.c (mark_used): Give helpful message about deleted conversion.
294         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
295         * semantics.c (finish_this_expr): Adjust.
296         * mangle.c (write_closure_type_name): Adjust.
297         * decl.c (grok_op_properties): Don't allow it.
298         * call.c (build_user_type_conversion_1): No static conversion ops.
299         (build_op_call): Or op().
301         * decl2.c (change_return_type): Fix 'this' quals.
303 2010-03-22  Jason Merrill  <jason@redhat.com>
305         PR c++/43333
306         * tree.c (pod_type_p): Use old meaning in C++98 mode.
308         PR c++/43281
309         * pt.c (contains_auto_r): New fn.
310         (do_auto_deduction): Use it.
311         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
313 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
315         PR c++/43081:
316         * decl2.c (grokfield): Handle invalid initializers for member
317         functions.
319 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
321         PR c++/43375
322         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
323         is NULL.
324         * decl2.c (vague_linkage_p): Likewise.
326 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
328         PR c++/43418
329         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
330         false, in the cp_parser_expression_statement call.
332 2010-03-05  Jason Merrill  <jason@redhat.com>
334         * mangle.c (mangle_decl): Give name collision error even without
335         ASM_OUTPUT_DEF.
337 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
339         * pt.c (process_partial_specialization): Use error_n instead of
340         error.
342 2010-03-03  Jason Merrill  <jason@redhat.com>
344         PR c++/12909
345         * mangle.c (mangle_decl): Handle VAR_DECL, too.
347 2010-03-03  Jason Merrill  <jason@redhat.com>
349         PR c++/12909
350         * mangle.c: Include cgraph.h.
351         (mangle_decl): If the mangled name will change in a later
352         ABI version, make the later mangled name an alias.
353         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
354         * Make-lang.in (mangle.o): Depend on cgraph.h.
355         * method.c (make_alias_for): Handle VAR_DECL, too.
356         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
357         * tree.c (no_linkage_check): Adjust.
358         * decl.c (maybe_commonize_var): Adjust.
359         * cp-tree.h: Adjust.
361 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
363         * pt.c (redeclare_class_template): Use error_n and inform_n.
365 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
367         PR c++/42748
368         * cp-tree.h (push_tinst_level): Declare.
369         (pop_tinst_level): Likewise.
370         * pt.c (push_tinst_level): Give it external linkage.
371         (pop_tinst_level): Likewise.
372         * mangle.c (mangle_decl_string): Set the source location to that
373         of the decl while mangling.
375 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
377         PR c++/42054
378         * pt.c (redeclare_class_template): Return false if there are erroneous
379         template parameters.
381 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
383         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
384         -ftemplate-depth=.
386 2010-02-24  Jason Merrill  <jason@redhat.com>
388         PR c++/12909
389         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
391         * class.c (layout_class_type): Don't give -Wabi warning for a bug
392         in a previous ABI version.
394 2010-02-23  Jason Merrill  <jason@redhat.com>
396         PR c++/43143
397         * typeck2.c (digest_init_r): Accept value init of array.
399 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
401         PR c++/43126
402         * typeck.c (convert_arguments): Update error message.
404 2010-02-22  Mike Stump  <mikestump@comcast.net>
406         PR c++/43125
407         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
409 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
411         PR c++/23510
412         * error.c (print_instantiation_partial_context_line): New.
413         (print_instantiation_partial_context): Print at most 12 contexts,
414         skip the rest with a message.
416 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
418         PR c++/42824
419         * pt.c (lookup_template_class): Better support of specialization
420         of member of class template implicit instantiation.
422 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
424         PR c++/35669
425         * call.c (conversion_null_warnings): Replace -Wconversion with
426         -Wconversion-null.
427         * cvt.c (build_expr_type_conversion): Likewise.
429 2010-02-18  Jason Merrill  <jason@redhat.com>
431         PR c++/42837
432         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
434         PR c++/43108
435         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
436         C build_binary_op.
437         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
438         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
440         PR c++/43070
441         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
443         PR c++/26261
444         PR c++/43101
445         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
446         (maybe_update_decl_type): New fn.
447         * parser.c (cp_parser_init_declarator): Use it.
449         PR c++/43109
450         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
452 2010-02-17  Jason Merrill  <jason@redhat.com>
454         PR c++/43075
455         * call.c (build_over_call): Don't create zero-sized assignments.
456         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
457         * cp-objcp-common.c (cp_expr_size): Remove.
458         * cp-tree.h: Remove prototype.
460         PR c++/43069
461         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
462         decl we looked up doesn't match.
464         PR c++/43093
465         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
466         have an INIT_EXPR anymore.
468         PR c++/43079
469         * pt.c (convert_nontype_argument): Change assert to test.
471 2010-02-16  Jason Merrill  <jason@redhat.com>
473         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
475         PR c++/43031
476         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
477         VIEW_CONVERT_EXPR for conversions between structural equality types
478         that the back end can't tell are the same.
480         PR c++/43036
481         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
482         cv-quals from element here.
483         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
485 2010-02-14  Jason Merrill  <jason@redhat.com>
487         PR c++/41997
488         * semantics.c (finish_compound_literal): Use
489         cp_apply_type_quals_to_decl when creating a static variable.
491 2010-02-12  Jason Merrill  <jason@redhat.com>
493         PR c++/43024
494         * name-lookup.h (current_binding_level): Check for null
495         cp_function_chain.
497 2010-02-12  Jason Merrill  <jason@redhat.com>
499         PR c++/43054
500         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
502 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
504         PR c++/43033
505         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
506         instead of x.
508 2010-02-10  Jason Merrill  <jason@redhat.com>
510         PR c++/41896
511         * semantics.c (outer_lambda_capture_p): Revert.
512         (add_capture): Only finish_member_declaration if
513         we're in the lambda class.
514         (register_capture_members): New.
515         * cp-tree.h: Declare it.
516         * parser.c (cp_parser_lambda_expression): Call it.
518 2010-02-10  Jason Merrill  <jason@redhat.com>
520         PR c++/41896
521         * semantics.c (outer_lambda_capture_p): Use current_function_decl
522         instead of current_class_type.
524 2010-02-10  Jason Merrill  <jason@redhat.com>
526         PR c++/42983, core issue 906
527         * method.c (defaultable_fn_check): Check virtualness.
529 2010-02-10  Jason Merrill  <jason@redhat.com>
531         PR c++/43016
532         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
534 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
536         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
537         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
538         translation.
539         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
540         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
541         (cp_parser_parameter_declaration)
542         (cp_parser_exception_specification_opt)
543         (cp_parser_exception_declaration): Likewise.
544         * pt.c (check_default_tmpl_args): Likewise.
545         * search.c (lookup_field_r): Likewise.
547 2010-02-09  Jason Merrill  <jason@redhat.com>
549         PR c++/42399
550         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
552 2010-02-09  Jason Merrill  <jason@redhat.com>
554         PR c++/42370
555         * decl2.c (change_return_type): New fn.
556         * semantics.c (apply_lambda_return_type): Use it.
557         * cp-tree.h: Declare it.
559 2010-02-05  Richard Guenther  <rguenther@suse.de>
561         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
562         * cp-lang.c: Include gt-cp-cp-lang.h.
563         * config-lang.in (gtfiles): Add cp/cp-lang.c.
565 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
567         PR c++/42915
568         * typeck.c (get_template_parms_of_dependent_type): Try getting
569         the template parameters fromt the type itself first.
571 2010-02-03  Jason Merrill  <jason@redhat.com>
573         PR c++/4926
574         PR c++/38600
575         * mangle.c (write_unqualified_id): Split out from write_expression.
576         (write_unqualified_name): Call it.
577         (write_member_name): Likewise.
578         (write_expression): Support TEMPLATE_ID_EXPR.
579         Disambiguate operator names.
581         PR c++/12909
582         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
583         -fabi-version=4.
585 2010-02-02  Jason Merrill  <jason@redhat.com>
587         PR c++/41090
588         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
589         * optimize.c (clone_body): Remap their initializers when making base
590         variants.
591         (maybe_clone_body): Complain if multiple clones aren't safe.
593 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
595         PR c++/42758
596         PR c++/42634
597         PR c++/42336
598         PR c++/42797
599         PR c++/42880
600         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
601         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
602         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
603         * pt.c (coerce_template_parms, type_unification_real,
604         expand_template_argument_pack, coerce_template_parameter_pack):
605         Set the non default template args count.
606         (current_template_args): Always set non defaulted
607         template args count when compiled with --enable-checking
608         (tsubst_template_args, type_unification_real): Propagate the non
609         defaulted template args count.
610         * error.c (get_non_default_template_args_count): Renamed
611         count_non_default_template_args into this. Don't calculate the
612         non default template argument count anymore. Use the new
613         accessor macros above to get it.
614         (dump_template_argument_list, dump_type, dump_decl,
615         dump_template_parms): Adjust.
616         * parser.c (cp_parser_template_argument_list): Always set defaulted
617         template args count when compiled with --enable-checking.
619 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
621         * decl.c (redeclaration_error_message): Wrap the return messages into
622         G_() for easy translation.
624 2010-01-28  Jason Merrill  <jason@redhat.com>
626         PR c++/42880
627         * semantics.c (begin_class_definition): Don't use type_as_string.
629 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
631         PR c++/42713
632         PR c++/42820
633         * typeck.c (get_template_parms_of_dependent_type): Factorized
634         this out of incompatible_template_type_parms_p
635         (incompatible_dependent_types_p): Renamed
636         incompatible_template_type_parms_p into this. Make it detect
637         two incompatible dependent typedefs too.
638         (structural_comptypes): Use incompatible_dependent_types_p.
639         * pt.c (get_template_info):
640         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
642 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
643             Jason Merrill  <jason@redhat.com>
645         * mangle.c (write_type): Mangle transparent record as member type.
646         * semantics.c (begin_class_definition): Recognize decimal classes
647         and set TYPE_TRANSPARENT_AGGR.
649 2010-01-20  Jason Merrill  <jason@redhat.com>
651         PR c++/42338
652         * mangle.c (write_expression): Handle tree codes that have extra
653         arguments in the middle-end.
655 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
657         PR c++/42038
658         * except.c (expand_start_catch_block): Deal correctly with
659         do_begin_catch returning error_mark_node.
661 2010-01-20  Jason Merrill  <jason@redhat.com>
663         PR c++/41788
664         * class.c (layout_class_type): Set packed_maybe_necessary for packed
665         non-PODs.
667         PR c++/41920
668         * semantics.c (build_lambda_object): Call mark_used on captured
669         variables.
671         PR c++/40750
672         * decl.c (grokdeclarator): Clear type_quals for a member function
673         declared using a typedef.  Don't complain about adding cv-quals
674         to a function typedef in C++0x mode.
676 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
678         * decl.c (create_array_type_for_decl): Remove set but not used
679         variable error_msg.  Remove break stmts after return stmts.
681 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
683         * error.c (dump_template_parms, count_non_default_template_args):
684         Revert fix of PR c++/42634.
686 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
688         PR c++/42634
689         * error.c (dump_template_parms): Use innermost template
690         arguments before calling count_non_default_template_args.
691         (count_non_default_template_args): We are being called with
692         template innermost arguments now. There is no need to ensure
693         that again.
695 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
697         PR c++/42766
698         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
700 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
702         PR c++/42697
703         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
705 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
707         PR c++/42697
708         *pt.c (tsubst_decl): Get the arguments of a specialization from
709         the specialization template, not from the most general template.
711 2010-01-16  Jason Merrill  <jason@redhat.com>
713         PR c++/42761
714         * semantics.c (finish_decltype_type): Within a template, treat
715         unresolved CALL_EXPR as dependent.
717 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
719         * error.c (dump_template_parms,count_non_default_template_args):
720         Revert changes of PR c++/42634.
722 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
724         PR middle-end/42674
725         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
726         functions with noreturn attribute.
728 2010-01-14  Jason Merrill  <jason@redhat.com>
730         PR c++/42701
731         * call.c (build_new_method_call): Don't free the vec here.
733         PR c++/42655
734         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
736 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
738         PR c++/42634
739         * error.c (dump_template_parms): Use innermost template
740         arguments before calling count_non_default_template_args.
741         (count_non_default_template_args): We are being called with
742         template innermost arguments now. There is no need to ensure
743         that again.
745 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
747         c++/40155
748         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
749         arguments that were previously deduced.
751 2010-01-05  Jason Merrill  <jason@redhat.com>
753         * pt.c (unify_pack_expansion): Handle deduction from init-list.
754         * call.c (build_over_call): Don't complain about it.
756 2010-01-04  Jason Merrill  <jason@redhat.com>
758         PR c++/42555
759         * pt.c (tsubst_decl): Don't apply type attributes in place.
761         PR c++/42567
762         * semantics.c (describable_type): Remove decltype comment and
763         semantics.
767 Copyright (C) 2010 Free Software Foundation, Inc.
769 Copying and distribution of this file, with or without modification,
770 are permitted in any medium without royalty provided the copyright
771 notice and this notice are preserved.