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