OSDN Git Service

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