OSDN Git Service

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