OSDN Git Service

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