Commit d723358d by Jason Merrill Committed by Jason Merrill

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
parent c754ffcc
2014-02-21 Jason Merrill <jason@redhat.com> 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 PR c++/60185
* parser.c (cp_parser_default_argument): Clear * parser.c (cp_parser_default_argument): Clear
current_class_ptr/current_class_ref like tsubst_default_argument. current_class_ptr/current_class_ref like tsubst_default_argument.
......
...@@ -3986,7 +3986,7 @@ expand_or_defer_fn_1 (tree fn) ...@@ -3986,7 +3986,7 @@ expand_or_defer_fn_1 (tree fn)
linkage of all functions, and as that causes writes to linkage of all functions, and as that causes writes to
the data mapped in from the PCH file, it's advantageous the data mapped in from the PCH file, it's advantageous
to mark the functions at this point. */ 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 /* This function must have external linkage, as
otherwise DECL_INTERFACE_KNOWN would have been otherwise DECL_INTERFACE_KNOWN would have been
......
// 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() {}
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment