OSDN Git Service

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