OSDN Git Service

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