OSDN Git Service

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