OSDN Git Service

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