OSDN Git Service

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