OSDN Git Service

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