OSDN Git Service

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