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