OSDN Git Service

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