OSDN Git Service

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