OSDN Git Service

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