OSDN Git Service

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