OSDN Git Service

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