OSDN Git Service

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