OSDN Git Service

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