OSDN Git Service

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