OSDN Git Service

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