re PR c++/60108 ([C++11] ICE in use_thunk, at cp/method.c:340)

PR c++/60108
	* semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.

From-SVN: r208030
This commit is contained in:
Jason Merrill 2014-02-21 16:57:49 -05:00 committed by Jason Merrill
parent c754ffcc4c
commit d723358d01
3 changed files with 21 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2014-02-21 Jason Merrill <jason@redhat.com>
PR c++/60108
* semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
PR c++/60185
* parser.c (cp_parser_default_argument): Clear
current_class_ptr/current_class_ref like tsubst_default_argument.

View File

@ -3986,7 +3986,7 @@ expand_or_defer_fn_1 (tree fn)
linkage of all functions, and as that causes writes to
the data mapped in from the PCH file, it's advantageous
to mark the functions at this point. */
if (!DECL_IMPLICIT_INSTANTIATION (fn))
if (!DECL_IMPLICIT_INSTANTIATION (fn) || DECL_DEFAULTED_FN (fn))
{
/* This function must have external linkage, as
otherwise DECL_INTERFACE_KNOWN would have been

View File

@ -0,0 +1,17 @@
// PR c++/60108
// { dg-require-effective-target c++11 }
template<int> struct A
{
virtual ~A();
};
template<typename> struct B : A<0>, A<1>
{
~B() = default;
};
struct C : B<bool>
{
C() {}
};