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