OSDN Git Service

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