OSDN Git Service

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