OSDN Git Service

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