OSDN Git Service

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