OSDN Git Service

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