OSDN Git Service

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