OSDN Git Service

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