OSDN Git Service

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