OSDN Git Service

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