OSDN Git Service

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