OSDN Git Service

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