OSDN Git Service

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