OSDN Git Service

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