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: Include cgraph.h.
404         (mangle_decl): If the mangled name will change in a later
405         ABI version, make the later mangled name an alias.
406         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
407         * Make-lang.in (mangle.o): Depend on cgraph.h.
408         * method.c (make_alias_for): Handle VAR_DECL, too.
409         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
410         * tree.c (no_linkage_check): Adjust.
411         * decl.c (maybe_commonize_var): Adjust.
412         * cp-tree.h: Adjust.
413
414 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
415
416         * pt.c (redeclare_class_template): Use error_n and inform_n.
417
418 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
419
420         PR c++/42748
421         * cp-tree.h (push_tinst_level): Declare.
422         (pop_tinst_level): Likewise.
423         * pt.c (push_tinst_level): Give it external linkage.
424         (pop_tinst_level): Likewise.
425         * mangle.c (mangle_decl_string): Set the source location to that
426         of the decl while mangling.
427
428 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
429
430         PR c++/42054
431         * pt.c (redeclare_class_template): Return false if there are erroneous
432         template parameters.
433
434 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
435
436         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
437         -ftemplate-depth=.
438
439 2010-02-24  Jason Merrill  <jason@redhat.com>
440
441         PR c++/12909
442         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
443
444         * class.c (layout_class_type): Don't give -Wabi warning for a bug
445         in a previous ABI version.
446
447 2010-02-23  Jason Merrill  <jason@redhat.com>
448
449         PR c++/43143
450         * typeck2.c (digest_init_r): Accept value init of array.
451
452 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
453
454         PR c++/43126
455         * typeck.c (convert_arguments): Update error message.
456
457 2010-02-22  Mike Stump  <mikestump@comcast.net>
458
459         PR c++/43125
460         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
461
462 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
463
464         PR c++/23510
465         * error.c (print_instantiation_partial_context_line): New.
466         (print_instantiation_partial_context): Print at most 12 contexts,
467         skip the rest with a message.
468
469 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
470
471         PR c++/42824
472         * pt.c (lookup_template_class): Better support of specialization
473         of member of class template implicit instantiation.
474
475 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
476
477         PR c++/35669
478         * call.c (conversion_null_warnings): Replace -Wconversion with
479         -Wconversion-null.
480         * cvt.c (build_expr_type_conversion): Likewise.
481
482 2010-02-18  Jason Merrill  <jason@redhat.com>
483
484         PR c++/42837
485         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
486
487         PR c++/43108
488         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
489         C build_binary_op.
490         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
491         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
492
493         PR c++/43070
494         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
495
496         PR c++/26261
497         PR c++/43101
498         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
499         (maybe_update_decl_type): New fn.
500         * parser.c (cp_parser_init_declarator): Use it.
501
502         PR c++/43109
503         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
504
505 2010-02-17  Jason Merrill  <jason@redhat.com>
506
507         PR c++/43075
508         * call.c (build_over_call): Don't create zero-sized assignments.
509         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
510         * cp-objcp-common.c (cp_expr_size): Remove.
511         * cp-tree.h: Remove prototype.
512
513         PR c++/43069
514         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
515         decl we looked up doesn't match.
516
517         PR c++/43093
518         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
519         have an INIT_EXPR anymore.
520
521         PR c++/43079
522         * pt.c (convert_nontype_argument): Change assert to test.
523
524 2010-02-16  Jason Merrill  <jason@redhat.com>
525
526         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
527
528         PR c++/43031
529         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
530         VIEW_CONVERT_EXPR for conversions between structural equality types
531         that the back end can't tell are the same.
532
533         PR c++/43036
534         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
535         cv-quals from element here.
536         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
537
538 2010-02-14  Jason Merrill  <jason@redhat.com>
539
540         PR c++/41997
541         * semantics.c (finish_compound_literal): Use
542         cp_apply_type_quals_to_decl when creating a static variable.
543
544 2010-02-12  Jason Merrill  <jason@redhat.com>
545
546         PR c++/43024
547         * name-lookup.h (current_binding_level): Check for null
548         cp_function_chain.
549
550 2010-02-12  Jason Merrill  <jason@redhat.com>
551
552         PR c++/43054
553         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
554
555 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
556
557         PR c++/43033
558         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
559         instead of x.
560
561 2010-02-10  Jason Merrill  <jason@redhat.com>
562
563         PR c++/41896
564         * semantics.c (outer_lambda_capture_p): Revert.
565         (add_capture): Only finish_member_declaration if
566         we're in the lambda class.
567         (register_capture_members): New.
568         * cp-tree.h: Declare it.
569         * parser.c (cp_parser_lambda_expression): Call it.
570
571 2010-02-10  Jason Merrill  <jason@redhat.com>
572
573         PR c++/41896
574         * semantics.c (outer_lambda_capture_p): Use current_function_decl
575         instead of current_class_type.
576
577 2010-02-10  Jason Merrill  <jason@redhat.com>
578
579         PR c++/42983, core issue 906
580         * method.c (defaultable_fn_check): Check virtualness.
581
582 2010-02-10  Jason Merrill  <jason@redhat.com>
583
584         PR c++/43016
585         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
586
587 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
588
589         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
590         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
591         translation.
592         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
593         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
594         (cp_parser_parameter_declaration)
595         (cp_parser_exception_specification_opt)
596         (cp_parser_exception_declaration): Likewise.
597         * pt.c (check_default_tmpl_args): Likewise.
598         * search.c (lookup_field_r): Likewise.
599
600 2010-02-09  Jason Merrill  <jason@redhat.com>
601
602         PR c++/42399
603         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
604
605 2010-02-09  Jason Merrill  <jason@redhat.com>
606
607         PR c++/42370
608         * decl2.c (change_return_type): New fn.
609         * semantics.c (apply_lambda_return_type): Use it.
610         * cp-tree.h: Declare it.
611
612 2010-02-05  Richard Guenther  <rguenther@suse.de>
613
614         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
615         * cp-lang.c: Include gt-cp-cp-lang.h.
616         * config-lang.in (gtfiles): Add cp/cp-lang.c.
617
618 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
619
620         PR c++/42915
621         * typeck.c (get_template_parms_of_dependent_type): Try getting
622         the template parameters fromt the type itself first.
623
624 2010-02-03  Jason Merrill  <jason@redhat.com>
625
626         PR c++/4926
627         PR c++/38600
628         * mangle.c (write_unqualified_id): Split out from write_expression.
629         (write_unqualified_name): Call it.
630         (write_member_name): Likewise.
631         (write_expression): Support TEMPLATE_ID_EXPR.
632         Disambiguate operator names.
633
634         PR c++/12909
635         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
636         -fabi-version=4.
637
638 2010-02-02  Jason Merrill  <jason@redhat.com>
639
640         PR c++/41090
641         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
642         * optimize.c (clone_body): Remap their initializers when making base
643         variants.
644         (maybe_clone_body): Complain if multiple clones aren't safe.
645
646 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
647
648         PR c++/42758
649         PR c++/42634
650         PR c++/42336
651         PR c++/42797
652         PR c++/42880
653         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
654         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
655         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
656         * pt.c (coerce_template_parms, type_unification_real,
657         expand_template_argument_pack, coerce_template_parameter_pack):
658         Set the non default template args count.
659         (current_template_args): Always set non defaulted
660         template args count when compiled with --enable-checking
661         (tsubst_template_args, type_unification_real): Propagate the non
662         defaulted template args count.
663         * error.c (get_non_default_template_args_count): Renamed
664         count_non_default_template_args into this. Don't calculate the
665         non default template argument count anymore. Use the new
666         accessor macros above to get it.
667         (dump_template_argument_list, dump_type, dump_decl,
668         dump_template_parms): Adjust.
669         * parser.c (cp_parser_template_argument_list): Always set defaulted
670         template args count when compiled with --enable-checking.
671
672 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
673
674         * decl.c (redeclaration_error_message): Wrap the return messages into
675         G_() for easy translation.
676
677 2010-01-28  Jason Merrill  <jason@redhat.com>
678
679         PR c++/42880
680         * semantics.c (begin_class_definition): Don't use type_as_string.
681
682 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
683
684         PR c++/42713
685         PR c++/42820
686         * typeck.c (get_template_parms_of_dependent_type): Factorized
687         this out of incompatible_template_type_parms_p
688         (incompatible_dependent_types_p): Renamed
689         incompatible_template_type_parms_p into this. Make it detect
690         two incompatible dependent typedefs too.
691         (structural_comptypes): Use incompatible_dependent_types_p.
692         * pt.c (get_template_info):
693         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
694
695 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
696             Jason Merrill  <jason@redhat.com>
697
698         * mangle.c (write_type): Mangle transparent record as member type.
699         * semantics.c (begin_class_definition): Recognize decimal classes
700         and set TYPE_TRANSPARENT_AGGR.
701
702 2010-01-20  Jason Merrill  <jason@redhat.com>
703
704         PR c++/42338
705         * mangle.c (write_expression): Handle tree codes that have extra
706         arguments in the middle-end.
707
708 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
709
710         PR c++/42038
711         * except.c (expand_start_catch_block): Deal correctly with
712         do_begin_catch returning error_mark_node.
713
714 2010-01-20  Jason Merrill  <jason@redhat.com>
715
716         PR c++/41788
717         * class.c (layout_class_type): Set packed_maybe_necessary for packed
718         non-PODs.
719
720         PR c++/41920
721         * semantics.c (build_lambda_object): Call mark_used on captured
722         variables.
723
724         PR c++/40750
725         * decl.c (grokdeclarator): Clear type_quals for a member function
726         declared using a typedef.  Don't complain about adding cv-quals
727         to a function typedef in C++0x mode.
728
729 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
730
731         * decl.c (create_array_type_for_decl): Remove set but not used
732         variable error_msg.  Remove break stmts after return stmts.
733
734 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
735
736         * error.c (dump_template_parms, count_non_default_template_args):
737         Revert fix of PR c++/42634.
738
739 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
740
741         PR c++/42634
742         * error.c (dump_template_parms): Use innermost template
743         arguments before calling count_non_default_template_args.
744         (count_non_default_template_args): We are being called with
745         template innermost arguments now. There is no need to ensure
746         that again.
747
748 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
749
750         PR c++/42766
751         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
752
753 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
754
755         PR c++/42697
756         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
757
758 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
759
760         PR c++/42697
761         *pt.c (tsubst_decl): Get the arguments of a specialization from
762         the specialization template, not from the most general template.
763
764 2010-01-16  Jason Merrill  <jason@redhat.com>
765
766         PR c++/42761
767         * semantics.c (finish_decltype_type): Within a template, treat
768         unresolved CALL_EXPR as dependent.
769
770 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
771
772         * error.c (dump_template_parms,count_non_default_template_args):
773         Revert changes of PR c++/42634.
774
775 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
776
777         PR middle-end/42674
778         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
779         functions with noreturn attribute.
780
781 2010-01-14  Jason Merrill  <jason@redhat.com>
782
783         PR c++/42701
784         * call.c (build_new_method_call): Don't free the vec here.
785
786         PR c++/42655
787         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
788
789 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
790
791         PR c++/42634
792         * error.c (dump_template_parms): Use innermost template
793         arguments before calling count_non_default_template_args.
794         (count_non_default_template_args): We are being called with
795         template innermost arguments now. There is no need to ensure
796         that again.
797
798 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
799
800         c++/40155
801         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
802         arguments that were previously deduced.
803
804 2010-01-05  Jason Merrill  <jason@redhat.com>
805
806         * pt.c (unify_pack_expansion): Handle deduction from init-list.
807         * call.c (build_over_call): Don't complain about it.
808
809 2010-01-04  Jason Merrill  <jason@redhat.com>
810
811         PR c++/42555
812         * pt.c (tsubst_decl): Don't apply type attributes in place.
813
814         PR c++/42567
815         * semantics.c (describable_type): Remove decltype comment and
816         semantics.
817
818
819 \f
820 Copyright (C) 2010 Free Software Foundation, Inc.
821
822 Copying and distribution of this file, with or without modification,
823 are permitted in any medium without royalty provided the copyright
824 notice and this notice are preserved.