OSDN Git Service

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