Make lambda conversion op and op() non-static.
[official-gcc/constexpr.git] / gcc / cp / ChangeLog
blob81df9870121101f2e3e1a641e55431758254d971
1 2010-03-23  Jason Merrill  <jason@redhat.com>
3         Make lambda conversion op and op() non-static.
4         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
5         Also add the thunk function returned by the conversion op.
6         Mark the conversion deleted if the op() is variadic.
7         * decl2.c (mark_used): Give helpful message about deleted conversion.
8         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
9         * semantics.c (finish_this_expr): Adjust.
10         * mangle.c (write_closure_type_name): Adjust.
11         * decl.c (grok_op_properties): Don't allow it.
12         * call.c (build_user_type_conversion_1): No static conversion ops.
13         (build_op_call): Or op().
15         * decl2.c (change_return_type): Fix 'this' quals.
17 2010-03-22  Jason Merrill  <jason@redhat.com>
19         PR c++/43333
20         * tree.c (pod_type_p): Use old meaning in C++98 mode.
22         PR c++/43281
23         * pt.c (contains_auto_r): New fn.
24         (do_auto_deduction): Use it.
25         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
27 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
29         PR c++/43081:
30         * decl2.c (grokfield): Handle invalid initializers for member
31         functions.
33 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
35         PR c++/43375
36         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
37         is NULL.
38         * decl2.c (vague_linkage_p): Likewise.
40 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
42         PR c++/43418
43         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
44         false, in the cp_parser_expression_statement call.
46 2010-03-05  Jason Merrill  <jason@redhat.com>
48         * mangle.c (mangle_decl): Give name collision error even without
49         ASM_OUTPUT_DEF.
51 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
53         * pt.c (process_partial_specialization): Use error_n instead of
54         error.
56 2010-03-03  Jason Merrill  <jason@redhat.com>
58         PR c++/12909
59         * mangle.c (mangle_decl): Handle VAR_DECL, too.
61 2010-03-03  Jason Merrill  <jason@redhat.com>
63         PR c++/12909
64         * mangle.c: Include cgraph.h.
65         (mangle_decl): If the mangled name will change in a later
66         ABI version, make the later mangled name an alias.
67         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
68         * Make-lang.in (mangle.o): Depend on cgraph.h.
69         * method.c (make_alias_for): Handle VAR_DECL, too.
70         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
71         * tree.c (no_linkage_check): Adjust.
72         * decl.c (maybe_commonize_var): Adjust.
73         * cp-tree.h: Adjust.
75 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
77         * pt.c (redeclare_class_template): Use error_n and inform_n.
79 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
81         PR c++/42748
82         * cp-tree.h (push_tinst_level): Declare.
83         (pop_tinst_level): Likewise.
84         * pt.c (push_tinst_level): Give it external linkage.
85         (pop_tinst_level): Likewise.
86         * mangle.c (mangle_decl_string): Set the source location to that
87         of the decl while mangling.
89 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
91         PR c++/42054
92         * pt.c (redeclare_class_template): Return false if there are erroneous
93         template parameters.
95 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
97         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
98         -ftemplate-depth=.
100 2010-02-24  Jason Merrill  <jason@redhat.com>
102         PR c++/12909
103         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
105         * class.c (layout_class_type): Don't give -Wabi warning for a bug
106         in a previous ABI version.
108 2010-02-23  Jason Merrill  <jason@redhat.com>
110         PR c++/43143
111         * typeck2.c (digest_init_r): Accept value init of array.
113 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
115         PR c++/43126
116         * typeck.c (convert_arguments): Update error message.
118 2010-02-22  Mike Stump  <mikestump@comcast.net>
120         PR c++/43125
121         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
123 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
125         PR c++/23510
126         * error.c (print_instantiation_partial_context_line): New.
127         (print_instantiation_partial_context): Print at most 12 contexts,
128         skip the rest with a message.
130 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
132         PR c++/42824
133         * pt.c (lookup_template_class): Better support of specialization
134         of member of class template implicit instantiation.
136 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
138         PR c++/35669
139         * call.c (conversion_null_warnings): Replace -Wconversion with
140         -Wconversion-null.
141         * cvt.c (build_expr_type_conversion): Likewise.
143 2010-02-18  Jason Merrill  <jason@redhat.com>
145         PR c++/42837
146         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
148         PR c++/43108
149         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
150         C build_binary_op.
151         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
152         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
154         PR c++/43070
155         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
157         PR c++/26261
158         PR c++/43101
159         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
160         (maybe_update_decl_type): New fn.
161         * parser.c (cp_parser_init_declarator): Use it.
163         PR c++/43109
164         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
166 2010-02-17  Jason Merrill  <jason@redhat.com>
168         PR c++/43075
169         * call.c (build_over_call): Don't create zero-sized assignments.
170         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
171         * cp-objcp-common.c (cp_expr_size): Remove.
172         * cp-tree.h: Remove prototype.
174         PR c++/43069
175         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
176         decl we looked up doesn't match.
178         PR c++/43093
179         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
180         have an INIT_EXPR anymore.
182         PR c++/43079
183         * pt.c (convert_nontype_argument): Change assert to test.
185 2010-02-16  Jason Merrill  <jason@redhat.com>
187         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
189         PR c++/43031
190         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
191         VIEW_CONVERT_EXPR for conversions between structural equality types
192         that the back end can't tell are the same.
194         PR c++/43036
195         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
196         cv-quals from element here.
197         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
199 2010-02-14  Jason Merrill  <jason@redhat.com>
201         PR c++/41997
202         * semantics.c (finish_compound_literal): Use
203         cp_apply_type_quals_to_decl when creating a static variable.
205 2010-02-12  Jason Merrill  <jason@redhat.com>
207         PR c++/43024
208         * name-lookup.h (current_binding_level): Check for null
209         cp_function_chain.
211 2010-02-12  Jason Merrill  <jason@redhat.com>
213         PR c++/43054
214         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
216 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
218         PR c++/43033
219         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
220         instead of x.
222 2010-02-10  Jason Merrill  <jason@redhat.com>
224         PR c++/41896
225         * semantics.c (outer_lambda_capture_p): Revert.
226         (add_capture): Only finish_member_declaration if
227         we're in the lambda class.
228         (register_capture_members): New.
229         * cp-tree.h: Declare it.
230         * parser.c (cp_parser_lambda_expression): Call it.
232 2010-02-10  Jason Merrill  <jason@redhat.com>
234         PR c++/41896
235         * semantics.c (outer_lambda_capture_p): Use current_function_decl
236         instead of current_class_type.
238 2010-02-10  Jason Merrill  <jason@redhat.com>
240         PR c++/42983, core issue 906
241         * method.c (defaultable_fn_check): Check virtualness.
243 2010-02-10  Jason Merrill  <jason@redhat.com>
245         PR c++/43016
246         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
248 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
250         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
251         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
252         translation.
253         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
254         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
255         (cp_parser_parameter_declaration)
256         (cp_parser_exception_specification_opt)
257         (cp_parser_exception_declaration): Likewise.
258         * pt.c (check_default_tmpl_args): Likewise.
259         * search.c (lookup_field_r): Likewise.
261 2010-02-09  Jason Merrill  <jason@redhat.com>
263         PR c++/42399
264         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
266 2010-02-09  Jason Merrill  <jason@redhat.com>
268         PR c++/42370
269         * decl2.c (change_return_type): New fn.
270         * semantics.c (apply_lambda_return_type): Use it.
271         * cp-tree.h: Declare it.
273 2010-02-05  Richard Guenther  <rguenther@suse.de>
275         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
276         * cp-lang.c: Include gt-cp-cp-lang.h.
277         * config-lang.in (gtfiles): Add cp/cp-lang.c.
279 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
281         PR c++/42915
282         * typeck.c (get_template_parms_of_dependent_type): Try getting
283         the template parameters fromt the type itself first.
285 2010-02-03  Jason Merrill  <jason@redhat.com>
287         PR c++/4926
288         PR c++/38600
289         * mangle.c (write_unqualified_id): Split out from write_expression.
290         (write_unqualified_name): Call it.
291         (write_member_name): Likewise.
292         (write_expression): Support TEMPLATE_ID_EXPR.
293         Disambiguate operator names.
295         PR c++/12909
296         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
297         -fabi-version=4.
299 2010-02-02  Jason Merrill  <jason@redhat.com>
301         PR c++/41090
302         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
303         * optimize.c (clone_body): Remap their initializers when making base
304         variants.
305         (maybe_clone_body): Complain if multiple clones aren't safe.
307 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
309         PR c++/42758
310         PR c++/42634
311         PR c++/42336
312         PR c++/42797
313         PR c++/42880
314         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
315         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
316         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
317         * pt.c (coerce_template_parms, type_unification_real,
318         expand_template_argument_pack, coerce_template_parameter_pack):
319         Set the non default template args count.
320         (current_template_args): Always set non defaulted
321         template args count when compiled with --enable-checking
322         (tsubst_template_args, type_unification_real): Propagate the non
323         defaulted template args count.
324         * error.c (get_non_default_template_args_count): Renamed
325         count_non_default_template_args into this. Don't calculate the
326         non default template argument count anymore. Use the new
327         accessor macros above to get it.
328         (dump_template_argument_list, dump_type, dump_decl,
329         dump_template_parms): Adjust.
330         * parser.c (cp_parser_template_argument_list): Always set defaulted
331         template args count when compiled with --enable-checking.
333 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
335         * decl.c (redeclaration_error_message): Wrap the return messages into
336         G_() for easy translation.
338 2010-01-28  Jason Merrill  <jason@redhat.com>
340         PR c++/42880
341         * semantics.c (begin_class_definition): Don't use type_as_string.
343 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
345         PR c++/42713
346         PR c++/42820
347         * typeck.c (get_template_parms_of_dependent_type): Factorized
348         this out of incompatible_template_type_parms_p
349         (incompatible_dependent_types_p): Renamed
350         incompatible_template_type_parms_p into this. Make it detect
351         two incompatible dependent typedefs too.
352         (structural_comptypes): Use incompatible_dependent_types_p.
353         * pt.c (get_template_info):
354         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
356 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
357             Jason Merrill  <jason@redhat.com>
359         * mangle.c (write_type): Mangle transparent record as member type.
360         * semantics.c (begin_class_definition): Recognize decimal classes
361         and set TYPE_TRANSPARENT_AGGR.
363 2010-01-20  Jason Merrill  <jason@redhat.com>
365         PR c++/42338
366         * mangle.c (write_expression): Handle tree codes that have extra
367         arguments in the middle-end.
369 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
371         PR c++/42038
372         * except.c (expand_start_catch_block): Deal correctly with
373         do_begin_catch returning error_mark_node.
375 2010-01-20  Jason Merrill  <jason@redhat.com>
377         PR c++/41788
378         * class.c (layout_class_type): Set packed_maybe_necessary for packed
379         non-PODs.
381         PR c++/41920
382         * semantics.c (build_lambda_object): Call mark_used on captured
383         variables.
385         PR c++/40750
386         * decl.c (grokdeclarator): Clear type_quals for a member function
387         declared using a typedef.  Don't complain about adding cv-quals
388         to a function typedef in C++0x mode.
390 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
392         * decl.c (create_array_type_for_decl): Remove set but not used
393         variable error_msg.  Remove break stmts after return stmts.
395 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
397         * error.c (dump_template_parms, count_non_default_template_args):
398         Revert fix of PR c++/42634.
400 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
402         PR c++/42634
403         * error.c (dump_template_parms): Use innermost template
404         arguments before calling count_non_default_template_args.
405         (count_non_default_template_args): We are being called with
406         template innermost arguments now. There is no need to ensure
407         that again.
409 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
411         PR c++/42766
412         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
414 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
416         PR c++/42697
417         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
419 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
421         PR c++/42697
422         *pt.c (tsubst_decl): Get the arguments of a specialization from
423         the specialization template, not from the most general template.
425 2010-01-16  Jason Merrill  <jason@redhat.com>
427         PR c++/42761
428         * semantics.c (finish_decltype_type): Within a template, treat
429         unresolved CALL_EXPR as dependent.
431 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
433         * error.c (dump_template_parms,count_non_default_template_args):
434         Revert changes of PR c++/42634.
436 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
438         PR middle-end/42674
439         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
440         functions with noreturn attribute.
442 2010-01-14  Jason Merrill  <jason@redhat.com>
444         PR c++/42701
445         * call.c (build_new_method_call): Don't free the vec here.
447         PR c++/42655
448         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
450 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
452         PR c++/42634
453         * error.c (dump_template_parms): Use innermost template
454         arguments before calling count_non_default_template_args.
455         (count_non_default_template_args): We are being called with
456         template innermost arguments now. There is no need to ensure
457         that again.
459 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
461         c++/40155
462         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
463         arguments that were previously deduced.
465 2010-01-05  Jason Merrill  <jason@redhat.com>
467         * pt.c (unify_pack_expansion): Handle deduction from init-list.
468         * call.c (build_over_call): Don't complain about it.
470 2010-01-04  Jason Merrill  <jason@redhat.com>
472         PR c++/42555
473         * pt.c (tsubst_decl): Don't apply type attributes in place.
475         PR c++/42567
476         * semantics.c (describable_type): Remove decltype comment and
477         semantics.
481 Copyright (C) 2010 Free Software Foundation, Inc.
483 Copying and distribution of this file, with or without modification,
484 are permitted in any medium without royalty provided the copyright
485 notice and this notice are preserved.