OSDN Git Service

8175f146aa1eb40eafa5e950d0a30e7dab2eafc8
[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         * name-lookup.c (current_decl_namespace): Non-static.
219         (pop_nested_namespace): Sanity check.
220         * cp-tree.h: Declare current_decl_namespace.
221         * decl.c (grokvardecl): Use it instead of current_namespace.
222         (grokfndecl): Likewise.
223
224         PR c++/38392
225         * pt.c (tsubst_friend_function): Instatiate a friend that has already
226         been used.
227
228         * pt.c (print_template_statistics): New.
229         * cp-tree.h: Declare it.
230         * tree.c (cxx_print_statistics): Call it.
231
232         PR c++/41970
233         * decl.c (grokvardecl): Tweak warning message.
234         (grokfndecl): Likewise.
235
236 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
237
238         PR c++/42697
239         *pt.c (tsubst_decl): Get the arguments of a specialization from
240         the specialization template, not from the most general template.
241
242 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
243
244         PR c++/40239
245         * typeck2.c (process_init_constructor_record):
246         value-initialize members that are are not explicitely
247         initialized.
248
249 2010-04-07  Jie Zhang  <jie@codesourcery.com>
250
251         PR c++/42556
252         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
253         when all of its elements are non-constant and have been split out.
254
255 2010-04-06  Taras Glek  <taras@mozilla.com>
256             Jason Merrill  <jason@redhat.com>
257
258         * parser.c (cp_parser_class_specifier): Set class location to that
259         of IDENTIFIER_NODE instead of '{' when possible.
260         * semantics.c (begin_class_definition): Do not overide locations
261         with less precise ones.
262
263 2010-04-06  Jason Merrill  <jason@redhat.com>
264
265         PR c++/43648
266         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
267
268         PR c++/43621
269         * pt.c (maybe_update_decl_type): Check the return value from
270         push_scope.
271
272 2010-04-01  Jason Merrill  <jason@redhat.com>
273
274         * decl.c (next_initializable_field): No longer static.
275         * cp-tree.h: Declare it.
276         * call.c (build_aggr_conv): Fail if there are more initializers
277         than initializable fields.
278
279         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
280         instead of void_zero_node.
281
282 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
283
284         PR c++/43558
285         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
286         * pt.c (end_template_parm_list): Store sibling template parms of
287         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
288         (push_template_decl_real): Don't store the containing template decl
289         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
290         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
291         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
292         Simplify the logic.
293
294 2010-03-30  Jason Merrill  <jason@redhat.com>
295
296         PR c++/43076
297         * pt.c (push_template_decl_real): Deal better with running out of
298         scopes before running out of template parms.
299
300         PR c++/41185
301         PR c++/41786
302         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
303         function parameter context.  Don't print an error if parsing
304         tentatively.
305
306         PR c++/43559
307         * pt.c (more_specialized_fn): Don't control cv-qualifier check
308         with same_type_p.
309
310 2010-03-26  Jason Merrill  <jason@redhat.com>
311
312         PR c++/43509
313         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
314         c++0x mode, but not other type-names.
315
316 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
317
318         PR c++/43327
319         * pt.c (add_to_template_args): Support NULL ARGS;
320         (most_specialized_class): call coerce_template_parms on
321         template arguments passed to get_class_bindings. Use
322         add_to_template_args.
323         (unify): Handle VAR_DECLs.
324
325 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
326
327         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
328         into int.
329         * pt.c (get_template_parms_at_level): Adjust.
330
331 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
332
333         PR c++/43206
334         * cp-tree.h (get_template_parms_at_level): Declare ...
335         * pt.c (get_template_parms_at_level): ... new function.
336         * typeck.c (get_template_parms_of_dependent_type): If a template
337         type parm's DECL_CONTEXT isn't yet set, get its siblings from
338         current_template_parms. Use get_template_parms_at_level. Remove
339         useless test.
340         (incompatible_dependent_types_p): If we get empty parms from just one
341         of the template type parms we are comparing then the template parms are
342         incompatible.
343
344 2010-03-24  Jason Merrill  <jason@redhat.com>
345
346         PR c++/43502
347         * parser.c (make_declarator): Initialize id_loc.
348         (cp_parser_lambda_declarator_opt): And set it.
349
350 2010-03-23  Jason Merrill  <jason@redhat.com>
351
352         Make lambda conversion op and op() non-static.
353         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
354         Also add the thunk function returned by the conversion op.
355         Mark the conversion deleted if the op() is variadic.
356         * decl2.c (mark_used): Give helpful message about deleted conversion.
357         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
358         * semantics.c (finish_this_expr): Adjust.
359         * mangle.c (write_closure_type_name): Adjust.
360         * decl.c (grok_op_properties): Don't allow it.
361         * call.c (build_user_type_conversion_1): No static conversion ops.
362         (build_op_call): Or op().
363
364         * decl2.c (change_return_type): Fix 'this' quals.
365
366 2010-03-22  Jason Merrill  <jason@redhat.com>
367
368         PR c++/43333
369         * tree.c (pod_type_p): Use old meaning in C++98 mode.
370
371         PR c++/43281
372         * pt.c (contains_auto_r): New fn.
373         (do_auto_deduction): Use it.
374         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
375
376 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
377
378         PR c++/43081:
379         * decl2.c (grokfield): Handle invalid initializers for member
380         functions.
381
382 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
383
384         PR c++/43375
385         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
386         is NULL.
387         * decl2.c (vague_linkage_p): Likewise.
388
389 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
390
391         PR c++/43418
392         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
393         false, in the cp_parser_expression_statement call.
394
395 2010-03-05  Jason Merrill  <jason@redhat.com>
396
397         * mangle.c (mangle_decl): Give name collision error even without
398         ASM_OUTPUT_DEF.
399
400 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
401
402         * pt.c (process_partial_specialization): Use error_n instead of
403         error.
404
405 2010-03-03  Jason Merrill  <jason@redhat.com>
406
407         PR c++/12909
408         * mangle.c (mangle_decl): Handle VAR_DECL, too.
409
410 2010-03-03  Jason Merrill  <jason@redhat.com>
411
412         PR c++/12909
413         * mangle.c: Include cgraph.h.
414         (mangle_decl): If the mangled name will change in a later
415         ABI version, make the later mangled name an alias.
416         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
417         * Make-lang.in (mangle.o): Depend on cgraph.h.
418         * method.c (make_alias_for): Handle VAR_DECL, too.
419         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
420         * tree.c (no_linkage_check): Adjust.
421         * decl.c (maybe_commonize_var): Adjust.
422         * cp-tree.h: Adjust.
423
424 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
425
426         * pt.c (redeclare_class_template): Use error_n and inform_n.
427
428 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
429
430         PR c++/42748
431         * cp-tree.h (push_tinst_level): Declare.
432         (pop_tinst_level): Likewise.
433         * pt.c (push_tinst_level): Give it external linkage.
434         (pop_tinst_level): Likewise.
435         * mangle.c (mangle_decl_string): Set the source location to that
436         of the decl while mangling.
437
438 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
439
440         PR c++/42054
441         * pt.c (redeclare_class_template): Return false if there are erroneous
442         template parameters.
443
444 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
445
446         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
447         -ftemplate-depth=.
448
449 2010-02-24  Jason Merrill  <jason@redhat.com>
450
451         PR c++/12909
452         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
453
454         * class.c (layout_class_type): Don't give -Wabi warning for a bug
455         in a previous ABI version.
456
457 2010-02-23  Jason Merrill  <jason@redhat.com>
458
459         PR c++/43143
460         * typeck2.c (digest_init_r): Accept value init of array.
461
462 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
463
464         PR c++/43126
465         * typeck.c (convert_arguments): Update error message.
466
467 2010-02-22  Mike Stump  <mikestump@comcast.net>
468
469         PR c++/43125
470         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
471
472 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
473
474         PR c++/23510
475         * error.c (print_instantiation_partial_context_line): New.
476         (print_instantiation_partial_context): Print at most 12 contexts,
477         skip the rest with a message.
478
479 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
480
481         PR c++/42824
482         * pt.c (lookup_template_class): Better support of specialization
483         of member of class template implicit instantiation.
484
485 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
486
487         PR c++/35669
488         * call.c (conversion_null_warnings): Replace -Wconversion with
489         -Wconversion-null.
490         * cvt.c (build_expr_type_conversion): Likewise.
491
492 2010-02-18  Jason Merrill  <jason@redhat.com>
493
494         PR c++/42837
495         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
496
497         PR c++/43108
498         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
499         C build_binary_op.
500         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
501         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
502
503         PR c++/43070
504         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
505
506         PR c++/26261
507         PR c++/43101
508         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
509         (maybe_update_decl_type): New fn.
510         * parser.c (cp_parser_init_declarator): Use it.
511
512         PR c++/43109
513         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
514
515 2010-02-17  Jason Merrill  <jason@redhat.com>
516
517         PR c++/43075
518         * call.c (build_over_call): Don't create zero-sized assignments.
519         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
520         * cp-objcp-common.c (cp_expr_size): Remove.
521         * cp-tree.h: Remove prototype.
522
523         PR c++/43069
524         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
525         decl we looked up doesn't match.
526
527         PR c++/43093
528         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
529         have an INIT_EXPR anymore.
530
531         PR c++/43079
532         * pt.c (convert_nontype_argument): Change assert to test.
533
534 2010-02-16  Jason Merrill  <jason@redhat.com>
535
536         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
537
538         PR c++/43031
539         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
540         VIEW_CONVERT_EXPR for conversions between structural equality types
541         that the back end can't tell are the same.
542
543         PR c++/43036
544         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
545         cv-quals from element here.
546         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
547
548 2010-02-14  Jason Merrill  <jason@redhat.com>
549
550         PR c++/41997
551         * semantics.c (finish_compound_literal): Use
552         cp_apply_type_quals_to_decl when creating a static variable.
553
554 2010-02-12  Jason Merrill  <jason@redhat.com>
555
556         PR c++/43024
557         * name-lookup.h (current_binding_level): Check for null
558         cp_function_chain.
559
560 2010-02-12  Jason Merrill  <jason@redhat.com>
561
562         PR c++/43054
563         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
564
565 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
566
567         PR c++/43033
568         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
569         instead of x.
570
571 2010-02-10  Jason Merrill  <jason@redhat.com>
572
573         PR c++/41896
574         * semantics.c (outer_lambda_capture_p): Revert.
575         (add_capture): Only finish_member_declaration if
576         we're in the lambda class.
577         (register_capture_members): New.
578         * cp-tree.h: Declare it.
579         * parser.c (cp_parser_lambda_expression): Call it.
580
581 2010-02-10  Jason Merrill  <jason@redhat.com>
582
583         PR c++/41896
584         * semantics.c (outer_lambda_capture_p): Use current_function_decl
585         instead of current_class_type.
586
587 2010-02-10  Jason Merrill  <jason@redhat.com>
588
589         PR c++/42983, core issue 906
590         * method.c (defaultable_fn_check): Check virtualness.
591
592 2010-02-10  Jason Merrill  <jason@redhat.com>
593
594         PR c++/43016
595         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
596
597 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
598
599         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
600         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
601         translation.
602         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
603         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
604         (cp_parser_parameter_declaration)
605         (cp_parser_exception_specification_opt)
606         (cp_parser_exception_declaration): Likewise.
607         * pt.c (check_default_tmpl_args): Likewise.
608         * search.c (lookup_field_r): Likewise.
609
610 2010-02-09  Jason Merrill  <jason@redhat.com>
611
612         PR c++/42399
613         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
614
615 2010-02-09  Jason Merrill  <jason@redhat.com>
616
617         PR c++/42370
618         * decl2.c (change_return_type): New fn.
619         * semantics.c (apply_lambda_return_type): Use it.
620         * cp-tree.h: Declare it.
621
622 2010-02-05  Richard Guenther  <rguenther@suse.de>
623
624         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
625         * cp-lang.c: Include gt-cp-cp-lang.h.
626         * config-lang.in (gtfiles): Add cp/cp-lang.c.
627
628 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
629
630         PR c++/42915
631         * typeck.c (get_template_parms_of_dependent_type): Try getting
632         the template parameters fromt the type itself first.
633
634 2010-02-03  Jason Merrill  <jason@redhat.com>
635
636         PR c++/4926
637         PR c++/38600
638         * mangle.c (write_unqualified_id): Split out from write_expression.
639         (write_unqualified_name): Call it.
640         (write_member_name): Likewise.
641         (write_expression): Support TEMPLATE_ID_EXPR.
642         Disambiguate operator names.
643
644         PR c++/12909
645         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
646         -fabi-version=4.
647
648 2010-02-02  Jason Merrill  <jason@redhat.com>
649
650         PR c++/41090
651         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
652         * optimize.c (clone_body): Remap their initializers when making base
653         variants.
654         (maybe_clone_body): Complain if multiple clones aren't safe.
655
656 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
657
658         PR c++/42758
659         PR c++/42634
660         PR c++/42336
661         PR c++/42797
662         PR c++/42880
663         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
664         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
665         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
666         * pt.c (coerce_template_parms, type_unification_real,
667         expand_template_argument_pack, coerce_template_parameter_pack):
668         Set the non default template args count.
669         (current_template_args): Always set non defaulted
670         template args count when compiled with --enable-checking
671         (tsubst_template_args, type_unification_real): Propagate the non
672         defaulted template args count.
673         * error.c (get_non_default_template_args_count): Renamed
674         count_non_default_template_args into this. Don't calculate the
675         non default template argument count anymore. Use the new
676         accessor macros above to get it.
677         (dump_template_argument_list, dump_type, dump_decl,
678         dump_template_parms): Adjust.
679         * parser.c (cp_parser_template_argument_list): Always set defaulted
680         template args count when compiled with --enable-checking.
681
682 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
683
684         * decl.c (redeclaration_error_message): Wrap the return messages into
685         G_() for easy translation.
686
687 2010-01-28  Jason Merrill  <jason@redhat.com>
688
689         PR c++/42880
690         * semantics.c (begin_class_definition): Don't use type_as_string.
691
692 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
693
694         PR c++/42713
695         PR c++/42820
696         * typeck.c (get_template_parms_of_dependent_type): Factorized
697         this out of incompatible_template_type_parms_p
698         (incompatible_dependent_types_p): Renamed
699         incompatible_template_type_parms_p into this. Make it detect
700         two incompatible dependent typedefs too.
701         (structural_comptypes): Use incompatible_dependent_types_p.
702         * pt.c (get_template_info):
703         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
704
705 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
706             Jason Merrill  <jason@redhat.com>
707
708         * mangle.c (write_type): Mangle transparent record as member type.
709         * semantics.c (begin_class_definition): Recognize decimal classes
710         and set TYPE_TRANSPARENT_AGGR.
711
712 2010-01-20  Jason Merrill  <jason@redhat.com>
713
714         PR c++/42338
715         * mangle.c (write_expression): Handle tree codes that have extra
716         arguments in the middle-end.
717
718 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
719
720         PR c++/42038
721         * except.c (expand_start_catch_block): Deal correctly with
722         do_begin_catch returning error_mark_node.
723
724 2010-01-20  Jason Merrill  <jason@redhat.com>
725
726         PR c++/41788
727         * class.c (layout_class_type): Set packed_maybe_necessary for packed
728         non-PODs.
729
730         PR c++/41920
731         * semantics.c (build_lambda_object): Call mark_used on captured
732         variables.
733
734         PR c++/40750
735         * decl.c (grokdeclarator): Clear type_quals for a member function
736         declared using a typedef.  Don't complain about adding cv-quals
737         to a function typedef in C++0x mode.
738
739 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
740
741         * decl.c (create_array_type_for_decl): Remove set but not used
742         variable error_msg.  Remove break stmts after return stmts.
743
744 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
745
746         * error.c (dump_template_parms, count_non_default_template_args):
747         Revert fix of PR c++/42634.
748
749 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
750
751         PR c++/42634
752         * error.c (dump_template_parms): Use innermost template
753         arguments before calling count_non_default_template_args.
754         (count_non_default_template_args): We are being called with
755         template innermost arguments now. There is no need to ensure
756         that again.
757
758 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
759
760         PR c++/42766
761         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
762
763 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
764
765         PR c++/42697
766         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
767
768 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
769
770         PR c++/42697
771         *pt.c (tsubst_decl): Get the arguments of a specialization from
772         the specialization template, not from the most general template.
773
774 2010-01-16  Jason Merrill  <jason@redhat.com>
775
776         PR c++/42761
777         * semantics.c (finish_decltype_type): Within a template, treat
778         unresolved CALL_EXPR as dependent.
779
780 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
781
782         * error.c (dump_template_parms,count_non_default_template_args):
783         Revert changes of PR c++/42634.
784
785 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
786
787         PR middle-end/42674
788         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
789         functions with noreturn attribute.
790
791 2010-01-14  Jason Merrill  <jason@redhat.com>
792
793         PR c++/42701
794         * call.c (build_new_method_call): Don't free the vec here.
795
796         PR c++/42655
797         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
798
799 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
800
801         PR c++/42634
802         * error.c (dump_template_parms): Use innermost template
803         arguments before calling count_non_default_template_args.
804         (count_non_default_template_args): We are being called with
805         template innermost arguments now. There is no need to ensure
806         that again.
807
808 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
809
810         c++/40155
811         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
812         arguments that were previously deduced.
813
814 2010-01-05  Jason Merrill  <jason@redhat.com>
815
816         * pt.c (unify_pack_expansion): Handle deduction from init-list.
817         * call.c (build_over_call): Don't complain about it.
818
819 2010-01-04  Jason Merrill  <jason@redhat.com>
820
821         PR c++/42555
822         * pt.c (tsubst_decl): Don't apply type attributes in place.
823
824         PR c++/42567
825         * semantics.c (describable_type): Remove decltype comment and
826         semantics.
827
828
829 \f
830 Copyright (C) 2010 Free Software Foundation, Inc.
831
832 Copying and distribution of this file, with or without modification,
833 are permitted in any medium without royalty provided the copyright
834 notice and this notice are preserved.