OSDN Git Service

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