OSDN Git Service

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