OSDN Git Service

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