OSDN Git Service

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