OSDN Git Service

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