OSDN Git Service

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