OSDN Git Service

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