OSDN Git Service

36dfe71b550524eda0625097941133edd1a7e1f4
[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 (mangle_decl): Handle VAR_DECL, too.
341
342 2010-03-03  Jason Merrill  <jason@redhat.com>
343
344         PR c++/12909
345         * mangle.c: Include cgraph.h.
346         (mangle_decl): If the mangled name will change in a later
347         ABI version, make the later mangled name an alias.
348         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
349         * Make-lang.in (mangle.o): Depend on cgraph.h.
350         * method.c (make_alias_for): Handle VAR_DECL, too.
351         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
352         * tree.c (no_linkage_check): Adjust.
353         * decl.c (maybe_commonize_var): Adjust.
354         * cp-tree.h: Adjust.
355
356 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
357
358         * pt.c (redeclare_class_template): Use error_n and inform_n.
359
360 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
361
362         PR c++/42748
363         * cp-tree.h (push_tinst_level): Declare.
364         (pop_tinst_level): Likewise.
365         * pt.c (push_tinst_level): Give it external linkage.
366         (pop_tinst_level): Likewise.
367         * mangle.c (mangle_decl_string): Set the source location to that
368         of the decl while mangling.
369
370 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
371
372         PR c++/42054
373         * pt.c (redeclare_class_template): Return false if there are erroneous
374         template parameters.
375
376 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
377
378         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
379         -ftemplate-depth=.
380
381 2010-02-24  Jason Merrill  <jason@redhat.com>
382
383         PR c++/12909
384         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
385
386         * class.c (layout_class_type): Don't give -Wabi warning for a bug
387         in a previous ABI version.
388
389 2010-02-23  Jason Merrill  <jason@redhat.com>
390
391         PR c++/43143
392         * typeck2.c (digest_init_r): Accept value init of array.
393
394 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
395
396         PR c++/43126
397         * typeck.c (convert_arguments): Update error message.
398
399 2010-02-22  Mike Stump  <mikestump@comcast.net>
400
401         PR c++/43125
402         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
403
404 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
405
406         PR c++/23510
407         * error.c (print_instantiation_partial_context_line): New.
408         (print_instantiation_partial_context): Print at most 12 contexts,
409         skip the rest with a message.
410
411 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
412
413         PR c++/42824
414         * pt.c (lookup_template_class): Better support of specialization
415         of member of class template implicit instantiation.
416
417 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
418
419         PR c++/35669
420         * call.c (conversion_null_warnings): Replace -Wconversion with
421         -Wconversion-null.
422         * cvt.c (build_expr_type_conversion): Likewise.
423
424 2010-02-18  Jason Merrill  <jason@redhat.com>
425
426         PR c++/42837
427         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
428
429         PR c++/43108
430         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
431         C build_binary_op.
432         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
433         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
434
435         PR c++/43070
436         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
437
438         PR c++/26261
439         PR c++/43101
440         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
441         (maybe_update_decl_type): New fn.
442         * parser.c (cp_parser_init_declarator): Use it.
443
444         PR c++/43109
445         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
446
447 2010-02-17  Jason Merrill  <jason@redhat.com>
448
449         PR c++/43075
450         * call.c (build_over_call): Don't create zero-sized assignments.
451         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
452         * cp-objcp-common.c (cp_expr_size): Remove.
453         * cp-tree.h: Remove prototype.
454
455         PR c++/43069
456         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
457         decl we looked up doesn't match.
458
459         PR c++/43093
460         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
461         have an INIT_EXPR anymore.
462
463         PR c++/43079
464         * pt.c (convert_nontype_argument): Change assert to test.
465
466 2010-02-16  Jason Merrill  <jason@redhat.com>
467
468         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
469
470         PR c++/43031
471         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
472         VIEW_CONVERT_EXPR for conversions between structural equality types
473         that the back end can't tell are the same.
474
475         PR c++/43036
476         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
477         cv-quals from element here.
478         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
479
480 2010-02-14  Jason Merrill  <jason@redhat.com>
481
482         PR c++/41997
483         * semantics.c (finish_compound_literal): Use
484         cp_apply_type_quals_to_decl when creating a static variable.
485
486 2010-02-12  Jason Merrill  <jason@redhat.com>
487
488         PR c++/43024
489         * name-lookup.h (current_binding_level): Check for null
490         cp_function_chain.
491
492 2010-02-12  Jason Merrill  <jason@redhat.com>
493
494         PR c++/43054
495         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
496
497 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
498
499         PR c++/43033
500         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
501         instead of x.
502
503 2010-02-10  Jason Merrill  <jason@redhat.com>
504
505         PR c++/41896
506         * semantics.c (outer_lambda_capture_p): Revert.
507         (add_capture): Only finish_member_declaration if
508         we're in the lambda class.
509         (register_capture_members): New.
510         * cp-tree.h: Declare it.
511         * parser.c (cp_parser_lambda_expression): Call it.
512
513 2010-02-10  Jason Merrill  <jason@redhat.com>
514
515         PR c++/41896
516         * semantics.c (outer_lambda_capture_p): Use current_function_decl
517         instead of current_class_type.
518
519 2010-02-10  Jason Merrill  <jason@redhat.com>
520
521         PR c++/42983, core issue 906
522         * method.c (defaultable_fn_check): Check virtualness.
523
524 2010-02-10  Jason Merrill  <jason@redhat.com>
525
526         PR c++/43016
527         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
528
529 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
530
531         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
532         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
533         translation.
534         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
535         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
536         (cp_parser_parameter_declaration)
537         (cp_parser_exception_specification_opt)
538         (cp_parser_exception_declaration): Likewise.
539         * pt.c (check_default_tmpl_args): Likewise.
540         * search.c (lookup_field_r): Likewise.
541
542 2010-02-09  Jason Merrill  <jason@redhat.com>
543
544         PR c++/42399
545         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
546
547 2010-02-09  Jason Merrill  <jason@redhat.com>
548
549         PR c++/42370
550         * decl2.c (change_return_type): New fn.
551         * semantics.c (apply_lambda_return_type): Use it.
552         * cp-tree.h: Declare it.
553
554 2010-02-05  Richard Guenther  <rguenther@suse.de>
555
556         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
557         * cp-lang.c: Include gt-cp-cp-lang.h.
558         * config-lang.in (gtfiles): Add cp/cp-lang.c.
559
560 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
561
562         PR c++/42915
563         * typeck.c (get_template_parms_of_dependent_type): Try getting
564         the template parameters fromt the type itself first.
565
566 2010-02-03  Jason Merrill  <jason@redhat.com>
567
568         PR c++/4926
569         PR c++/38600
570         * mangle.c (write_unqualified_id): Split out from write_expression.
571         (write_unqualified_name): Call it.
572         (write_member_name): Likewise.
573         (write_expression): Support TEMPLATE_ID_EXPR.
574         Disambiguate operator names.
575
576         PR c++/12909
577         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
578         -fabi-version=4.
579
580 2010-02-02  Jason Merrill  <jason@redhat.com>
581
582         PR c++/41090
583         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
584         * optimize.c (clone_body): Remap their initializers when making base
585         variants.
586         (maybe_clone_body): Complain if multiple clones aren't safe.
587
588 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
589
590         PR c++/42758
591         PR c++/42634
592         PR c++/42336
593         PR c++/42797
594         PR c++/42880
595         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
596         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
597         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
598         * pt.c (coerce_template_parms, type_unification_real,
599         expand_template_argument_pack, coerce_template_parameter_pack):
600         Set the non default template args count.
601         (current_template_args): Always set non defaulted
602         template args count when compiled with --enable-checking
603         (tsubst_template_args, type_unification_real): Propagate the non
604         defaulted template args count.
605         * error.c (get_non_default_template_args_count): Renamed
606         count_non_default_template_args into this. Don't calculate the
607         non default template argument count anymore. Use the new
608         accessor macros above to get it.
609         (dump_template_argument_list, dump_type, dump_decl,
610         dump_template_parms): Adjust.
611         * parser.c (cp_parser_template_argument_list): Always set defaulted
612         template args count when compiled with --enable-checking.
613
614 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
615
616         * decl.c (redeclaration_error_message): Wrap the return messages into
617         G_() for easy translation.
618
619 2010-01-28  Jason Merrill  <jason@redhat.com>
620
621         PR c++/42880
622         * semantics.c (begin_class_definition): Don't use type_as_string.
623
624 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
625
626         PR c++/42713
627         PR c++/42820
628         * typeck.c (get_template_parms_of_dependent_type): Factorized
629         this out of incompatible_template_type_parms_p
630         (incompatible_dependent_types_p): Renamed
631         incompatible_template_type_parms_p into this. Make it detect
632         two incompatible dependent typedefs too.
633         (structural_comptypes): Use incompatible_dependent_types_p.
634         * pt.c (get_template_info):
635         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
636
637 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
638             Jason Merrill  <jason@redhat.com>
639
640         * mangle.c (write_type): Mangle transparent record as member type.
641         * semantics.c (begin_class_definition): Recognize decimal classes
642         and set TYPE_TRANSPARENT_AGGR.
643
644 2010-01-20  Jason Merrill  <jason@redhat.com>
645
646         PR c++/42338
647         * mangle.c (write_expression): Handle tree codes that have extra
648         arguments in the middle-end.
649
650 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
651
652         PR c++/42038
653         * except.c (expand_start_catch_block): Deal correctly with
654         do_begin_catch returning error_mark_node.
655
656 2010-01-20  Jason Merrill  <jason@redhat.com>
657
658         PR c++/41788
659         * class.c (layout_class_type): Set packed_maybe_necessary for packed
660         non-PODs.
661
662         PR c++/41920
663         * semantics.c (build_lambda_object): Call mark_used on captured
664         variables.
665
666         PR c++/40750
667         * decl.c (grokdeclarator): Clear type_quals for a member function
668         declared using a typedef.  Don't complain about adding cv-quals
669         to a function typedef in C++0x mode.
670
671 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
672
673         * decl.c (create_array_type_for_decl): Remove set but not used
674         variable error_msg.  Remove break stmts after return stmts.
675
676 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
677
678         * error.c (dump_template_parms, count_non_default_template_args):
679         Revert fix of PR c++/42634.
680
681 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
682
683         PR c++/42634
684         * error.c (dump_template_parms): Use innermost template
685         arguments before calling count_non_default_template_args.
686         (count_non_default_template_args): We are being called with
687         template innermost arguments now. There is no need to ensure
688         that again.
689
690 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
691
692         PR c++/42766
693         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
694
695 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
696
697         PR c++/42697
698         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
699
700 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
701
702         PR c++/42697
703         *pt.c (tsubst_decl): Get the arguments of a specialization from
704         the specialization template, not from the most general template.
705
706 2010-01-16  Jason Merrill  <jason@redhat.com>
707
708         PR c++/42761
709         * semantics.c (finish_decltype_type): Within a template, treat
710         unresolved CALL_EXPR as dependent.
711
712 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
713
714         * error.c (dump_template_parms,count_non_default_template_args):
715         Revert changes of PR c++/42634.
716
717 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
718
719         PR middle-end/42674
720         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
721         functions with noreturn attribute.
722
723 2010-01-14  Jason Merrill  <jason@redhat.com>
724
725         PR c++/42701
726         * call.c (build_new_method_call): Don't free the vec here.
727
728         PR c++/42655
729         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
730
731 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
732
733         PR c++/42634
734         * error.c (dump_template_parms): Use innermost template
735         arguments before calling count_non_default_template_args.
736         (count_non_default_template_args): We are being called with
737         template innermost arguments now. There is no need to ensure
738         that again.
739
740 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
741
742         c++/40155
743         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
744         arguments that were previously deduced.
745
746 2010-01-05  Jason Merrill  <jason@redhat.com>
747
748         * pt.c (unify_pack_expansion): Handle deduction from init-list.
749         * call.c (build_over_call): Don't complain about it.
750
751 2010-01-04  Jason Merrill  <jason@redhat.com>
752
753         PR c++/42555
754         * pt.c (tsubst_decl): Don't apply type attributes in place.
755
756         PR c++/42567
757         * semantics.c (describable_type): Remove decltype comment and
758         semantics.
759
760
761 \f
762 Copyright (C) 2010 Free Software Foundation, Inc.
763
764 Copying and distribution of this file, with or without modification,
765 are permitted in any medium without royalty provided the copyright
766 notice and this notice are preserved.