OSDN Git Service

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