Merge from mainline (157519:158021).
[official-gcc/graphite-test-results.git] / gcc / cp / ChangeLog
blob59b0e40b0004040a725988bcb1193d70f8d9b3b9
1 2010-04-06  Jason Merrill  <jason@redhat.com>
3         PR c++/43648
4         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
6         PR c++/43621
7         * pt.c (maybe_update_decl_type): Check the return value from
8         push_scope.
10 2010-04-01  Jason Merrill  <jason@redhat.com>
12         * decl.c (next_initializable_field): No longer static.
13         * cp-tree.h: Declare it.
14         * call.c (build_aggr_conv): Fail if there are more initializers
15         than initializable fields.
17         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
18         instead of void_zero_node.
20 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
22         PR c++/43558
23         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
24         * pt.c (end_template_parm_list): Store sibling template parms of
25         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
26         (push_template_decl_real): Don't store the containing template decl
27         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
28         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
29         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
30         Simplify the logic.
32 2010-03-30  Jason Merrill  <jason@redhat.com>
34         PR c++/43076
35         * pt.c (push_template_decl_real): Deal better with running out of
36         scopes before running out of template parms.
38         PR c++/41185
39         PR c++/41786
40         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
41         function parameter context.  Don't print an error if parsing
42         tentatively.
44         PR c++/43559
45         * pt.c (more_specialized_fn): Don't control cv-qualifier check
46         with same_type_p.
48 2010-03-26  Jason Merrill  <jason@redhat.com>
50         PR c++/43509
51         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
52         c++0x mode, but not other type-names.
54 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
56         PR c++/43327
57         * pt.c (add_to_template_args): Support NULL ARGS;
58         (most_specialized_class): call coerce_template_parms on
59         template arguments passed to get_class_bindings. Use
60         add_to_template_args.
61         (unify): Handle VAR_DECLs.
63 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
65         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
66         into int.
67         * pt.c (get_template_parms_at_level): Adjust.
69 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
71         PR c++/43206
72         * cp-tree.h (get_template_parms_at_level): Declare ...
73         * pt.c (get_template_parms_at_level): ... new function.
74         * typeck.c (get_template_parms_of_dependent_type): If a template
75         type parm's DECL_CONTEXT isn't yet set, get its siblings from
76         current_template_parms. Use get_template_parms_at_level. Remove
77         useless test.
78         (incompatible_dependent_types_p): If we get empty parms from just one
79         of the template type parms we are comparing then the template parms are
80         incompatible.
82 2010-03-24  Jason Merrill  <jason@redhat.com>
84         PR c++/43502
85         * parser.c (make_declarator): Initialize id_loc.
86         (cp_parser_lambda_declarator_opt): And set it.
88 2010-03-23  Jason Merrill  <jason@redhat.com>
90         Make lambda conversion op and op() non-static.
91         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
92         Also add the thunk function returned by the conversion op.
93         Mark the conversion deleted if the op() is variadic.
94         * decl2.c (mark_used): Give helpful message about deleted conversion.
95         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
96         * semantics.c (finish_this_expr): Adjust.
97         * mangle.c (write_closure_type_name): Adjust.
98         * decl.c (grok_op_properties): Don't allow it.
99         * call.c (build_user_type_conversion_1): No static conversion ops.
100         (build_op_call): Or op().
102         * decl2.c (change_return_type): Fix 'this' quals.
104 2010-03-22  Jason Merrill  <jason@redhat.com>
106         PR c++/43333
107         * tree.c (pod_type_p): Use old meaning in C++98 mode.
109         PR c++/43281
110         * pt.c (contains_auto_r): New fn.
111         (do_auto_deduction): Use it.
112         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
114 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
116         PR c++/43081:
117         * decl2.c (grokfield): Handle invalid initializers for member
118         functions.
120 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
122         PR c++/43375
123         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
124         is NULL.
125         * decl2.c (vague_linkage_p): Likewise.
127 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
129         PR c++/43418
130         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
131         false, in the cp_parser_expression_statement call.
133 2010-03-05  Jason Merrill  <jason@redhat.com>
135         * mangle.c (mangle_decl): Give name collision error even without
136         ASM_OUTPUT_DEF.
138 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
140         * pt.c (process_partial_specialization): Use error_n instead of
141         error.
143 2010-03-03  Jason Merrill  <jason@redhat.com>
145         PR c++/12909
146         * mangle.c (mangle_decl): Handle VAR_DECL, too.
148 2010-03-03  Jason Merrill  <jason@redhat.com>
150         PR c++/12909
151         * mangle.c: Include cgraph.h.
152         (mangle_decl): If the mangled name will change in a later
153         ABI version, make the later mangled name an alias.
154         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
155         * Make-lang.in (mangle.o): Depend on cgraph.h.
156         * method.c (make_alias_for): Handle VAR_DECL, too.
157         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
158         * tree.c (no_linkage_check): Adjust.
159         * decl.c (maybe_commonize_var): Adjust.
160         * cp-tree.h: Adjust.
162 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
164         * pt.c (redeclare_class_template): Use error_n and inform_n.
166 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
168         PR c++/42748
169         * cp-tree.h (push_tinst_level): Declare.
170         (pop_tinst_level): Likewise.
171         * pt.c (push_tinst_level): Give it external linkage.
172         (pop_tinst_level): Likewise.
173         * mangle.c (mangle_decl_string): Set the source location to that
174         of the decl while mangling.
176 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
178         PR c++/42054
179         * pt.c (redeclare_class_template): Return false if there are erroneous
180         template parameters.
182 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
184         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
185         -ftemplate-depth=.
187 2010-02-24  Jason Merrill  <jason@redhat.com>
189         PR c++/12909
190         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
192         * class.c (layout_class_type): Don't give -Wabi warning for a bug
193         in a previous ABI version.
195 2010-02-23  Jason Merrill  <jason@redhat.com>
197         PR c++/43143
198         * typeck2.c (digest_init_r): Accept value init of array.
200 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
202         PR c++/43126
203         * typeck.c (convert_arguments): Update error message.
205 2010-02-22  Mike Stump  <mikestump@comcast.net>
207         PR c++/43125
208         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
210 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
212         PR c++/23510
213         * error.c (print_instantiation_partial_context_line): New.
214         (print_instantiation_partial_context): Print at most 12 contexts,
215         skip the rest with a message.
217 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
219         PR c++/42824
220         * pt.c (lookup_template_class): Better support of specialization
221         of member of class template implicit instantiation.
223 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
225         PR c++/35669
226         * call.c (conversion_null_warnings): Replace -Wconversion with
227         -Wconversion-null.
228         * cvt.c (build_expr_type_conversion): Likewise.
230 2010-02-18  Jason Merrill  <jason@redhat.com>
232         PR c++/42837
233         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
235         PR c++/43108
236         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
237         C build_binary_op.
238         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
239         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
241         PR c++/43070
242         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
244         PR c++/26261
245         PR c++/43101
246         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
247         (maybe_update_decl_type): New fn.
248         * parser.c (cp_parser_init_declarator): Use it.
250         PR c++/43109
251         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
253 2010-02-17  Jason Merrill  <jason@redhat.com>
255         PR c++/43075
256         * call.c (build_over_call): Don't create zero-sized assignments.
257         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
258         * cp-objcp-common.c (cp_expr_size): Remove.
259         * cp-tree.h: Remove prototype.
261         PR c++/43069
262         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
263         decl we looked up doesn't match.
265         PR c++/43093
266         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
267         have an INIT_EXPR anymore.
269         PR c++/43079
270         * pt.c (convert_nontype_argument): Change assert to test.
272 2010-02-16  Jason Merrill  <jason@redhat.com>
274         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
276         PR c++/43031
277         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
278         VIEW_CONVERT_EXPR for conversions between structural equality types
279         that the back end can't tell are the same.
281         PR c++/43036
282         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
283         cv-quals from element here.
284         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
286 2010-02-14  Jason Merrill  <jason@redhat.com>
288         PR c++/41997
289         * semantics.c (finish_compound_literal): Use
290         cp_apply_type_quals_to_decl when creating a static variable.
292 2010-02-12  Jason Merrill  <jason@redhat.com>
294         PR c++/43024
295         * name-lookup.h (current_binding_level): Check for null
296         cp_function_chain.
298 2010-02-12  Jason Merrill  <jason@redhat.com>
300         PR c++/43054
301         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
303 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
305         PR c++/43033
306         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
307         instead of x.
309 2010-02-10  Jason Merrill  <jason@redhat.com>
311         PR c++/41896
312         * semantics.c (outer_lambda_capture_p): Revert.
313         (add_capture): Only finish_member_declaration if
314         we're in the lambda class.
315         (register_capture_members): New.
316         * cp-tree.h: Declare it.
317         * parser.c (cp_parser_lambda_expression): Call it.
319 2010-02-10  Jason Merrill  <jason@redhat.com>
321         PR c++/41896
322         * semantics.c (outer_lambda_capture_p): Use current_function_decl
323         instead of current_class_type.
325 2010-02-10  Jason Merrill  <jason@redhat.com>
327         PR c++/42983, core issue 906
328         * method.c (defaultable_fn_check): Check virtualness.
330 2010-02-10  Jason Merrill  <jason@redhat.com>
332         PR c++/43016
333         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
335 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
337         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
338         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
339         translation.
340         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
341         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
342         (cp_parser_parameter_declaration)
343         (cp_parser_exception_specification_opt)
344         (cp_parser_exception_declaration): Likewise.
345         * pt.c (check_default_tmpl_args): Likewise.
346         * search.c (lookup_field_r): Likewise.
348 2010-02-09  Jason Merrill  <jason@redhat.com>
350         PR c++/42399
351         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
353 2010-02-09  Jason Merrill  <jason@redhat.com>
355         PR c++/42370
356         * decl2.c (change_return_type): New fn.
357         * semantics.c (apply_lambda_return_type): Use it.
358         * cp-tree.h: Declare it.
360 2010-02-05  Richard Guenther  <rguenther@suse.de>
362         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
363         * cp-lang.c: Include gt-cp-cp-lang.h.
364         * config-lang.in (gtfiles): Add cp/cp-lang.c.
366 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
368         PR c++/42915
369         * typeck.c (get_template_parms_of_dependent_type): Try getting
370         the template parameters fromt the type itself first.
372 2010-02-03  Jason Merrill  <jason@redhat.com>
374         PR c++/4926
375         PR c++/38600
376         * mangle.c (write_unqualified_id): Split out from write_expression.
377         (write_unqualified_name): Call it.
378         (write_member_name): Likewise.
379         (write_expression): Support TEMPLATE_ID_EXPR.
380         Disambiguate operator names.
382         PR c++/12909
383         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
384         -fabi-version=4.
386 2010-02-02  Jason Merrill  <jason@redhat.com>
388         PR c++/41090
389         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
390         * optimize.c (clone_body): Remap their initializers when making base
391         variants.
392         (maybe_clone_body): Complain if multiple clones aren't safe.
394 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
396         PR c++/42758
397         PR c++/42634
398         PR c++/42336
399         PR c++/42797
400         PR c++/42880
401         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
402         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
403         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
404         * pt.c (coerce_template_parms, type_unification_real,
405         expand_template_argument_pack, coerce_template_parameter_pack):
406         Set the non default template args count.
407         (current_template_args): Always set non defaulted
408         template args count when compiled with --enable-checking
409         (tsubst_template_args, type_unification_real): Propagate the non
410         defaulted template args count.
411         * error.c (get_non_default_template_args_count): Renamed
412         count_non_default_template_args into this. Don't calculate the
413         non default template argument count anymore. Use the new
414         accessor macros above to get it.
415         (dump_template_argument_list, dump_type, dump_decl,
416         dump_template_parms): Adjust.
417         * parser.c (cp_parser_template_argument_list): Always set defaulted
418         template args count when compiled with --enable-checking.
420 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
422         * decl.c (redeclaration_error_message): Wrap the return messages into
423         G_() for easy translation.
425 2010-01-28  Jason Merrill  <jason@redhat.com>
427         PR c++/42880
428         * semantics.c (begin_class_definition): Don't use type_as_string.
430 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
432         PR c++/42713
433         PR c++/42820
434         * typeck.c (get_template_parms_of_dependent_type): Factorized
435         this out of incompatible_template_type_parms_p
436         (incompatible_dependent_types_p): Renamed
437         incompatible_template_type_parms_p into this. Make it detect
438         two incompatible dependent typedefs too.
439         (structural_comptypes): Use incompatible_dependent_types_p.
440         * pt.c (get_template_info):
441         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
443 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
444             Jason Merrill  <jason@redhat.com>
446         * mangle.c (write_type): Mangle transparent record as member type.
447         * semantics.c (begin_class_definition): Recognize decimal classes
448         and set TYPE_TRANSPARENT_AGGR.
450 2010-01-20  Jason Merrill  <jason@redhat.com>
452         PR c++/42338
453         * mangle.c (write_expression): Handle tree codes that have extra
454         arguments in the middle-end.
456 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
458         PR c++/42038
459         * except.c (expand_start_catch_block): Deal correctly with
460         do_begin_catch returning error_mark_node.
462 2010-01-20  Jason Merrill  <jason@redhat.com>
464         PR c++/41788
465         * class.c (layout_class_type): Set packed_maybe_necessary for packed
466         non-PODs.
468         PR c++/41920
469         * semantics.c (build_lambda_object): Call mark_used on captured
470         variables.
472         PR c++/40750
473         * decl.c (grokdeclarator): Clear type_quals for a member function
474         declared using a typedef.  Don't complain about adding cv-quals
475         to a function typedef in C++0x mode.
477 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
479         * decl.c (create_array_type_for_decl): Remove set but not used
480         variable error_msg.  Remove break stmts after return stmts.
482 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
484         * error.c (dump_template_parms, count_non_default_template_args):
485         Revert fix of PR c++/42634.
487 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
489         PR c++/42634
490         * error.c (dump_template_parms): Use innermost template
491         arguments before calling count_non_default_template_args.
492         (count_non_default_template_args): We are being called with
493         template innermost arguments now. There is no need to ensure
494         that again.
496 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
498         PR c++/42766
499         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
501 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
503         PR c++/42697
504         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
506 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
508         PR c++/42697
509         *pt.c (tsubst_decl): Get the arguments of a specialization from
510         the specialization template, not from the most general template.
512 2010-01-16  Jason Merrill  <jason@redhat.com>
514         PR c++/42761
515         * semantics.c (finish_decltype_type): Within a template, treat
516         unresolved CALL_EXPR as dependent.
518 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
520         * error.c (dump_template_parms,count_non_default_template_args):
521         Revert changes of PR c++/42634.
523 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
525         PR middle-end/42674
526         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
527         functions with noreturn attribute.
529 2010-01-14  Jason Merrill  <jason@redhat.com>
531         PR c++/42701
532         * call.c (build_new_method_call): Don't free the vec here.
534         PR c++/42655
535         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
537 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
539         PR c++/42634
540         * error.c (dump_template_parms): Use innermost template
541         arguments before calling count_non_default_template_args.
542         (count_non_default_template_args): We are being called with
543         template innermost arguments now. There is no need to ensure
544         that again.
546 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
548         c++/40155
549         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
550         arguments that were previously deduced.
552 2010-01-05  Jason Merrill  <jason@redhat.com>
554         * pt.c (unify_pack_expansion): Handle deduction from init-list.
555         * call.c (build_over_call): Don't complain about it.
557 2010-01-04  Jason Merrill  <jason@redhat.com>
559         PR c++/42555
560         * pt.c (tsubst_decl): Don't apply type attributes in place.
562         PR c++/42567
563         * semantics.c (describable_type): Remove decltype comment and
564         semantics.
568 Copyright (C) 2010 Free Software Foundation, Inc.
570 Copying and distribution of this file, with or without modification,
571 are permitted in any medium without royalty provided the copyright
572 notice and this notice are preserved.