OSDN Git Service

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