OSDN Git Service

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