OSDN Git Service

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