OSDN Git Service

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