OSDN Git Service

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