OSDN Git Service

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