OSDN Git Service

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