OSDN Git Service

PR c++/43787
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-05-05  Jason Merrill  <jason@redhat.com>
2
3         PR c++/43787
4         * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
5         * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
6
7 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
8
9         PR c++/43028
10         * pt.c (unify): Check each elt for error_mark_node.
11
12 2010-05-04  Jason Merrill  <jason@redhat.com>
13
14         PR c++/38064
15         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
16
17 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
18
19         PR c++/43705
20         * call.c (build_new_method_call): Return error_mark_node if fns is
21         NULL_TREE.
22
23 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
24
25         PR c++/43953
26         * pt.c (most_specialized_class): Pretend we are processing
27         a template decl during the call to coerce_template_parms.
28
29 2010-05-03  Jason Merrill  <jason@redhat.com>
30
31         PR c++/42810
32         PR c++/43680
33         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
34         from the selected underlying type unless -fstrict-enums.  Set
35         ENUM_UNDERLYING_TYPE to have the restricted range.
36         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
37         * class.c (check_bitfield_decl): Likewise.
38
39 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
40
41         PR c++/43951
42         * init.c (build_new_1): Revert the accidental checkin in
43         revision 158918.
44
45 2010-04-30  Jason Merrill  <jason@redhat.com>
46
47         PR c++/43868
48         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
49         (pp_cxx_type_specifier_seq): ...here.
50
51 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
52
53         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
54         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
55
56 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
57
58         PR c++/43779
59         * typeck.c (warn_args_num): New function.
60         (convert_arguments): Use warn_args_num to print the diagnostic
61         messages. 
62
63 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
64
65         PR c++/43890
66         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
67         user-provided constructor while recursing.
68
69 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
70
71         PR c++/9335
72         * error.c (print_instantiation_partial_context_line): Handle
73         recursive instantiation.
74         (print_instantiation_partial_context): Likewise.
75
76 2010-04-27  Jason Merrill  <jason@redhat.com>
77
78         * init.c (perform_member_init): Check CLASS_TYPE_P.
79
80 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
81
82         PR c++/29043
83         * init.c (perform_member_init): check for uninitialized const or
84         reference members, including array types.
85
86 2010-04-24  Jason Merrill  <jason@redhat.com>
87
88         * tree.c (get_fns): Split out from get_first_fn.
89         * cp-tree.h: Declare it.
90         * search.c (shared_member_p): Use it.
91         * semantics.c (finish_qualified_id_expr): Simplify.
92         (finish_id_expression): Simplify.
93
94         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
95         whenever object is NULL_TREE.  Don't do 'this' capture here.
96         (finish_qualified_id_expr): Pass NULL_TREE.
97         (finish_id_expression): Likewise.
98         (lambda_expr_this_capture): Likewise.
99
100         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
101         rather than checking current_class_ref directly.
102         (finish_call_expr): Likewise.
103
104         PR c++/43856
105         * name-lookup.c (qualify_lookup): Disqualify lambda op().
106         * class.c (current_nonlambda_class_type): New fn.
107         * semantics.c (nonlambda_method_basetype): New.
108         * cp-tree.h: Declare them.
109         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
110
111         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
112
113         PR c++/43875
114         * semantics.c (lambda_return_type): Complain about
115         braced-init-list.
116
117         PR c++/43790
118         * tree.c (cv_unqualified): Handle error_mark_node.
119
120         PR c++/41468
121         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
122         if we don't want errors.
123
124         PR c++/41468
125         * class.c (convert_to_base): Add complain parameter.  Pass
126         ba_quiet to lookup_base if we don't want errors.
127         (build_vfield_ref): Pass complain to convert_to_base.
128         * call.c (convert_like_real): Likewise.
129         (initialize_reference): Likewise.
130         (perform_direct_initialization_if_possible): Pass complain to
131         convert_like_real.
132         * cp-tree.h: Adjust.
133
134 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
135             Jason Merrill  <jason@redhat.com>
136
137         PR c++/42844
138         * decl.c (check_for_uninitialized_const_var): Handle classes that need
139         constructing, too.
140         (check_initializer): Call it for classes that need constructing, too.
141         * class.c (in_class_defaulted_default_constructor): New.
142         * cp-tree.h: Declare it.
143
144 2010-04-20  Jason Merrill  <jason@redhat.com>
145
146         PR c++/9335
147         * init.c (constant_value_1): Treat error_mark_node as a constant
148         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
149         * cvt.c (ocp_convert): Handle getting error_mark_node from
150         integral_constant_value.
151         * decl.c (compute_array_index_type): Likewise.
152
153 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
154
155         PR c++/43800
156         PR c++/43704
157         * typeck.c (incompatible_dependent_types_p): If one of the
158         compared types if not a typedef then honour their main variant
159         equivalence.
160
161 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
162
163         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
164
165 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
166
167         PR c++/43704
168         * typeck.c (structural_comptypes): Test dependent typedefs
169         incompatibility before testing for their main variant based
170         equivalence.
171
172 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
173
174         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
175         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
176
177 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
178
179         * decl.c (cxx_init_decl_processing): Remove second argument in call to
180         build_common_tree_nodes.
181
182 2010-04-14  Jason Merrill  <jason@redhat.com>
183
184         PR c++/36625
185         * parser.c (cp_parser_parenthesized_expression_list): Change
186         is_attribute_list parm to int to indicate whether or not to
187         handle initial identifier specially.
188         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
189
190 2010-04-13  Jason Merrill  <jason@redhat.com>
191
192         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
193         CLASS_TYPE_P.
194         * parser.c (cp_parser_lambda_expression): Complain about lambda in
195         unevaluated context.
196         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
197
198 2010-04-12  Jason Merrill  <jason@redhat.com>
199
200         PR c++/43641
201         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
202         return value directly.
203
204         * call.c (type_decays_to): Call cv_unqualified for non-class type.
205
206 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
207
208         PR c++/25811
209         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
210         * init.c (build_new_1): Check for uninitialized const members and
211         uninitialized reference members, when using new without
212         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
213         (diagnose_uninitialized_cst_or_ref_member): Define, call
214         diagnose_uninitialized_cst_or_ref_member_1.
215         (diagnose_uninitialized_cst_or_ref_member_1): New function.
216
217 2010-04-12  Richard Guenther  <rguenther@suse.de>
218
219         PR c++/43611
220         * semantics.c (expand_or_defer_fn_1): Do not keep extern
221         template inline functions.
222
223 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
224
225         PR c++/28584
226         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
227         pointer type.
228
229 2010-04-07  Jason Merrill  <jason@redhat.com>
230
231         PR c++/43016
232         * decl.c (start_preparsed_function): Do defer nested functions.
233
234         PR c++/11094, DR 408
235         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
236         * decl2.c (finish_static_data_member_decl): Set it.
237         * decl.c (duplicate_decls): Propagate it.
238         * pt.c (tsubst_decl): Don't substitute the domain of an array
239         VAR_DECL if it's set.
240         (regenerate_decl_from_template): Substitute it here.
241         (type_dependent_expression_p): Return true if it's set.
242         * semantics.c (finish_decltype_type): Instantiate such a variable.
243         * typeck.c (cxx_sizeof_expr): Likewise.
244         (strip_array_domain): New.
245
246         PR c++/43145
247         * name-lookup.c (current_decl_namespace): Non-static.
248         (pop_nested_namespace): Sanity check.
249         * cp-tree.h: Declare current_decl_namespace.
250         * decl.c (grokvardecl): Use it instead of current_namespace.
251         (grokfndecl): Likewise.
252
253         PR c++/38392
254         * pt.c (tsubst_friend_function): Instatiate a friend that has already
255         been used.
256
257         * pt.c (print_template_statistics): New.
258         * cp-tree.h: Declare it.
259         * tree.c (cxx_print_statistics): Call it.
260
261         PR c++/41970
262         * decl.c (grokvardecl): Tweak warning message.
263         (grokfndecl): Likewise.
264
265 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
266
267         PR c++/42697
268         *pt.c (tsubst_decl): Get the arguments of a specialization from
269         the specialization template, not from the most general template.
270
271 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
272
273         PR c++/40239
274         * typeck2.c (process_init_constructor_record):
275         value-initialize members that are are not explicitely
276         initialized.
277
278 2010-04-07  Jie Zhang  <jie@codesourcery.com>
279
280         PR c++/42556
281         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
282         when all of its elements are non-constant and have been split out.
283
284 2010-04-06  Taras Glek  <taras@mozilla.com>
285             Jason Merrill  <jason@redhat.com>
286
287         * parser.c (cp_parser_class_specifier): Set class location to that
288         of IDENTIFIER_NODE instead of '{' when possible.
289         * semantics.c (begin_class_definition): Do not overide locations
290         with less precise ones.
291
292 2010-04-06  Jason Merrill  <jason@redhat.com>
293
294         PR c++/43648
295         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
296
297         PR c++/43621
298         * pt.c (maybe_update_decl_type): Check the return value from
299         push_scope.
300
301 2010-04-01  Jason Merrill  <jason@redhat.com>
302
303         * decl.c (next_initializable_field): No longer static.
304         * cp-tree.h: Declare it.
305         * call.c (build_aggr_conv): Fail if there are more initializers
306         than initializable fields.
307
308         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
309         instead of void_zero_node.
310
311 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
312
313         PR c++/43558
314         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
315         * pt.c (end_template_parm_list): Store sibling template parms of
316         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
317         (push_template_decl_real): Don't store the containing template decl
318         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
319         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
320         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
321         Simplify the logic.
322
323 2010-03-30  Jason Merrill  <jason@redhat.com>
324
325         PR c++/43076
326         * pt.c (push_template_decl_real): Deal better with running out of
327         scopes before running out of template parms.
328
329         PR c++/41185
330         PR c++/41786
331         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
332         function parameter context.  Don't print an error if parsing
333         tentatively.
334
335         PR c++/43559
336         * pt.c (more_specialized_fn): Don't control cv-qualifier check
337         with same_type_p.
338
339 2010-03-26  Jason Merrill  <jason@redhat.com>
340
341         PR c++/43509
342         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
343         c++0x mode, but not other type-names.
344
345 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
346
347         PR c++/43327
348         * pt.c (add_to_template_args): Support NULL ARGS;
349         (most_specialized_class): call coerce_template_parms on
350         template arguments passed to get_class_bindings. Use
351         add_to_template_args.
352         (unify): Handle VAR_DECLs.
353
354 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
355
356         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
357         into int.
358         * pt.c (get_template_parms_at_level): Adjust.
359
360 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
361
362         PR c++/43206
363         * cp-tree.h (get_template_parms_at_level): Declare ...
364         * pt.c (get_template_parms_at_level): ... new function.
365         * typeck.c (get_template_parms_of_dependent_type): If a template
366         type parm's DECL_CONTEXT isn't yet set, get its siblings from
367         current_template_parms. Use get_template_parms_at_level. Remove
368         useless test.
369         (incompatible_dependent_types_p): If we get empty parms from just one
370         of the template type parms we are comparing then the template parms are
371         incompatible.
372
373 2010-03-24  Jason Merrill  <jason@redhat.com>
374
375         PR c++/43502
376         * parser.c (make_declarator): Initialize id_loc.
377         (cp_parser_lambda_declarator_opt): And set it.
378
379 2010-03-23  Jason Merrill  <jason@redhat.com>
380
381         Make lambda conversion op and op() non-static.
382         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
383         Also add the thunk function returned by the conversion op.
384         Mark the conversion deleted if the op() is variadic.
385         * decl2.c (mark_used): Give helpful message about deleted conversion.
386         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
387         * semantics.c (finish_this_expr): Adjust.
388         * mangle.c (write_closure_type_name): Adjust.
389         * decl.c (grok_op_properties): Don't allow it.
390         * call.c (build_user_type_conversion_1): No static conversion ops.
391         (build_op_call): Or op().
392
393         * decl2.c (change_return_type): Fix 'this' quals.
394
395 2010-03-22  Jason Merrill  <jason@redhat.com>
396
397         PR c++/43333
398         * tree.c (pod_type_p): Use old meaning in C++98 mode.
399
400         PR c++/43281
401         * pt.c (contains_auto_r): New fn.
402         (do_auto_deduction): Use it.
403         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
404
405 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
406
407         PR c++/43081:
408         * decl2.c (grokfield): Handle invalid initializers for member
409         functions.
410
411 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
412
413         PR c++/43375
414         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
415         is NULL.
416         * decl2.c (vague_linkage_p): Likewise.
417
418 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
419
420         PR c++/43418
421         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
422         false, in the cp_parser_expression_statement call.
423
424 2010-03-05  Jason Merrill  <jason@redhat.com>
425
426         * mangle.c (mangle_decl): Give name collision error even without
427         ASM_OUTPUT_DEF.
428
429 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
430
431         * pt.c (process_partial_specialization): Use error_n instead of
432         error.
433
434 2010-03-03  Jason Merrill  <jason@redhat.com>
435
436         PR c++/12909
437         * mangle.c (mangle_decl): Handle VAR_DECL, too.
438
439 2010-03-03  Jason Merrill  <jason@redhat.com>
440
441         PR c++/12909
442         * mangle.c: Include cgraph.h.
443         (mangle_decl): If the mangled name will change in a later
444         ABI version, make the later mangled name an alias.
445         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
446         * Make-lang.in (mangle.o): Depend on cgraph.h.
447         * method.c (make_alias_for): Handle VAR_DECL, too.
448         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
449         * tree.c (no_linkage_check): Adjust.
450         * decl.c (maybe_commonize_var): Adjust.
451         * cp-tree.h: Adjust.
452
453 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
454
455         * pt.c (redeclare_class_template): Use error_n and inform_n.
456
457 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
458
459         PR c++/42748
460         * cp-tree.h (push_tinst_level): Declare.
461         (pop_tinst_level): Likewise.
462         * pt.c (push_tinst_level): Give it external linkage.
463         (pop_tinst_level): Likewise.
464         * mangle.c (mangle_decl_string): Set the source location to that
465         of the decl while mangling.
466
467 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
468
469         PR c++/42054
470         * pt.c (redeclare_class_template): Return false if there are erroneous
471         template parameters.
472
473 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
474
475         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
476         -ftemplate-depth=.
477
478 2010-02-24  Jason Merrill  <jason@redhat.com>
479
480         PR c++/12909
481         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
482
483         * class.c (layout_class_type): Don't give -Wabi warning for a bug
484         in a previous ABI version.
485
486 2010-02-23  Jason Merrill  <jason@redhat.com>
487
488         PR c++/43143
489         * typeck2.c (digest_init_r): Accept value init of array.
490
491 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
492
493         PR c++/43126
494         * typeck.c (convert_arguments): Update error message.
495
496 2010-02-22  Mike Stump  <mikestump@comcast.net>
497
498         PR c++/43125
499         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
500
501 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
502
503         PR c++/23510
504         * error.c (print_instantiation_partial_context_line): New.
505         (print_instantiation_partial_context): Print at most 12 contexts,
506         skip the rest with a message.
507
508 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
509
510         PR c++/42824
511         * pt.c (lookup_template_class): Better support of specialization
512         of member of class template implicit instantiation.
513
514 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
515
516         PR c++/35669
517         * call.c (conversion_null_warnings): Replace -Wconversion with
518         -Wconversion-null.
519         * cvt.c (build_expr_type_conversion): Likewise.
520
521 2010-02-18  Jason Merrill  <jason@redhat.com>
522
523         PR c++/42837
524         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
525
526         PR c++/43108
527         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
528         C build_binary_op.
529         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
530         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
531
532         PR c++/43070
533         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
534
535         PR c++/26261
536         PR c++/43101
537         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
538         (maybe_update_decl_type): New fn.
539         * parser.c (cp_parser_init_declarator): Use it.
540
541         PR c++/43109
542         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
543
544 2010-02-17  Jason Merrill  <jason@redhat.com>
545
546         PR c++/43075
547         * call.c (build_over_call): Don't create zero-sized assignments.
548         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
549         * cp-objcp-common.c (cp_expr_size): Remove.
550         * cp-tree.h: Remove prototype.
551
552         PR c++/43069
553         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
554         decl we looked up doesn't match.
555
556         PR c++/43093
557         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
558         have an INIT_EXPR anymore.
559
560         PR c++/43079
561         * pt.c (convert_nontype_argument): Change assert to test.
562
563 2010-02-16  Jason Merrill  <jason@redhat.com>
564
565         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
566
567         PR c++/43031
568         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
569         VIEW_CONVERT_EXPR for conversions between structural equality types
570         that the back end can't tell are the same.
571
572         PR c++/43036
573         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
574         cv-quals from element here.
575         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
576
577 2010-02-14  Jason Merrill  <jason@redhat.com>
578
579         PR c++/41997
580         * semantics.c (finish_compound_literal): Use
581         cp_apply_type_quals_to_decl when creating a static variable.
582
583 2010-02-12  Jason Merrill  <jason@redhat.com>
584
585         PR c++/43024
586         * name-lookup.h (current_binding_level): Check for null
587         cp_function_chain.
588
589 2010-02-12  Jason Merrill  <jason@redhat.com>
590
591         PR c++/43054
592         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
593
594 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
595
596         PR c++/43033
597         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
598         instead of x.
599
600 2010-02-10  Jason Merrill  <jason@redhat.com>
601
602         PR c++/41896
603         * semantics.c (outer_lambda_capture_p): Revert.
604         (add_capture): Only finish_member_declaration if
605         we're in the lambda class.
606         (register_capture_members): New.
607         * cp-tree.h: Declare it.
608         * parser.c (cp_parser_lambda_expression): Call it.
609
610 2010-02-10  Jason Merrill  <jason@redhat.com>
611
612         PR c++/41896
613         * semantics.c (outer_lambda_capture_p): Use current_function_decl
614         instead of current_class_type.
615
616 2010-02-10  Jason Merrill  <jason@redhat.com>
617
618         PR c++/42983, core issue 906
619         * method.c (defaultable_fn_check): Check virtualness.
620
621 2010-02-10  Jason Merrill  <jason@redhat.com>
622
623         PR c++/43016
624         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
625
626 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
627
628         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
629         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
630         translation.
631         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
632         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
633         (cp_parser_parameter_declaration)
634         (cp_parser_exception_specification_opt)
635         (cp_parser_exception_declaration): Likewise.
636         * pt.c (check_default_tmpl_args): Likewise.
637         * search.c (lookup_field_r): Likewise.
638
639 2010-02-09  Jason Merrill  <jason@redhat.com>
640
641         PR c++/42399
642         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
643
644 2010-02-09  Jason Merrill  <jason@redhat.com>
645
646         PR c++/42370
647         * decl2.c (change_return_type): New fn.
648         * semantics.c (apply_lambda_return_type): Use it.
649         * cp-tree.h: Declare it.
650
651 2010-02-05  Richard Guenther  <rguenther@suse.de>
652
653         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
654         * cp-lang.c: Include gt-cp-cp-lang.h.
655         * config-lang.in (gtfiles): Add cp/cp-lang.c.
656
657 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
658
659         PR c++/42915
660         * typeck.c (get_template_parms_of_dependent_type): Try getting
661         the template parameters fromt the type itself first.
662
663 2010-02-03  Jason Merrill  <jason@redhat.com>
664
665         PR c++/4926
666         PR c++/38600
667         * mangle.c (write_unqualified_id): Split out from write_expression.
668         (write_unqualified_name): Call it.
669         (write_member_name): Likewise.
670         (write_expression): Support TEMPLATE_ID_EXPR.
671         Disambiguate operator names.
672
673         PR c++/12909
674         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
675         -fabi-version=4.
676
677 2010-02-02  Jason Merrill  <jason@redhat.com>
678
679         PR c++/41090
680         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
681         * optimize.c (clone_body): Remap their initializers when making base
682         variants.
683         (maybe_clone_body): Complain if multiple clones aren't safe.
684
685 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
686
687         PR c++/42758
688         PR c++/42634
689         PR c++/42336
690         PR c++/42797
691         PR c++/42880
692         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
693         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
694         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
695         * pt.c (coerce_template_parms, type_unification_real,
696         expand_template_argument_pack, coerce_template_parameter_pack):
697         Set the non default template args count.
698         (current_template_args): Always set non defaulted
699         template args count when compiled with --enable-checking
700         (tsubst_template_args, type_unification_real): Propagate the non
701         defaulted template args count.
702         * error.c (get_non_default_template_args_count): Renamed
703         count_non_default_template_args into this. Don't calculate the
704         non default template argument count anymore. Use the new
705         accessor macros above to get it.
706         (dump_template_argument_list, dump_type, dump_decl,
707         dump_template_parms): Adjust.
708         * parser.c (cp_parser_template_argument_list): Always set defaulted
709         template args count when compiled with --enable-checking.
710
711 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
712
713         * decl.c (redeclaration_error_message): Wrap the return messages into
714         G_() for easy translation.
715
716 2010-01-28  Jason Merrill  <jason@redhat.com>
717
718         PR c++/42880
719         * semantics.c (begin_class_definition): Don't use type_as_string.
720
721 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
722
723         PR c++/42713
724         PR c++/42820
725         * typeck.c (get_template_parms_of_dependent_type): Factorized
726         this out of incompatible_template_type_parms_p
727         (incompatible_dependent_types_p): Renamed
728         incompatible_template_type_parms_p into this. Make it detect
729         two incompatible dependent typedefs too.
730         (structural_comptypes): Use incompatible_dependent_types_p.
731         * pt.c (get_template_info):
732         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
733
734 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
735             Jason Merrill  <jason@redhat.com>
736
737         * mangle.c (write_type): Mangle transparent record as member type.
738         * semantics.c (begin_class_definition): Recognize decimal classes
739         and set TYPE_TRANSPARENT_AGGR.
740
741 2010-01-20  Jason Merrill  <jason@redhat.com>
742
743         PR c++/42338
744         * mangle.c (write_expression): Handle tree codes that have extra
745         arguments in the middle-end.
746
747 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
748
749         PR c++/42038
750         * except.c (expand_start_catch_block): Deal correctly with
751         do_begin_catch returning error_mark_node.
752
753 2010-01-20  Jason Merrill  <jason@redhat.com>
754
755         PR c++/41788
756         * class.c (layout_class_type): Set packed_maybe_necessary for packed
757         non-PODs.
758
759         PR c++/41920
760         * semantics.c (build_lambda_object): Call mark_used on captured
761         variables.
762
763         PR c++/40750
764         * decl.c (grokdeclarator): Clear type_quals for a member function
765         declared using a typedef.  Don't complain about adding cv-quals
766         to a function typedef in C++0x mode.
767
768 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
769
770         * decl.c (create_array_type_for_decl): Remove set but not used
771         variable error_msg.  Remove break stmts after return stmts.
772
773 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
774
775         * error.c (dump_template_parms, count_non_default_template_args):
776         Revert fix of PR c++/42634.
777
778 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
779
780         PR c++/42634
781         * error.c (dump_template_parms): Use innermost template
782         arguments before calling count_non_default_template_args.
783         (count_non_default_template_args): We are being called with
784         template innermost arguments now. There is no need to ensure
785         that again.
786
787 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
788
789         PR c++/42766
790         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
791
792 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
793
794         PR c++/42697
795         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
796
797 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
798
799         PR c++/42697
800         *pt.c (tsubst_decl): Get the arguments of a specialization from
801         the specialization template, not from the most general template.
802
803 2010-01-16  Jason Merrill  <jason@redhat.com>
804
805         PR c++/42761
806         * semantics.c (finish_decltype_type): Within a template, treat
807         unresolved CALL_EXPR as dependent.
808
809 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
810
811         * error.c (dump_template_parms,count_non_default_template_args):
812         Revert changes of PR c++/42634.
813
814 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
815
816         PR middle-end/42674
817         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
818         functions with noreturn attribute.
819
820 2010-01-14  Jason Merrill  <jason@redhat.com>
821
822         PR c++/42701
823         * call.c (build_new_method_call): Don't free the vec here.
824
825         PR c++/42655
826         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
827
828 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
829
830         PR c++/42634
831         * error.c (dump_template_parms): Use innermost template
832         arguments before calling count_non_default_template_args.
833         (count_non_default_template_args): We are being called with
834         template innermost arguments now. There is no need to ensure
835         that again.
836
837 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
838
839         c++/40155
840         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
841         arguments that were previously deduced.
842
843 2010-01-05  Jason Merrill  <jason@redhat.com>
844
845         * pt.c (unify_pack_expansion): Handle deduction from init-list.
846         * call.c (build_over_call): Don't complain about it.
847
848 2010-01-04  Jason Merrill  <jason@redhat.com>
849
850         PR c++/42555
851         * pt.c (tsubst_decl): Don't apply type attributes in place.
852
853         PR c++/42567
854         * semantics.c (describable_type): Remove decltype comment and
855         semantics.
856
857
858 \f
859 Copyright (C) 2010 Free Software Foundation, Inc.
860
861 Copying and distribution of this file, with or without modification,
862 are permitted in any medium without royalty provided the copyright
863 notice and this notice are preserved.