OSDN Git Service

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