Commit 333cb612 by Paolo Carlini Committed by Paolo Carlini

re PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)

/cp
2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68754
	* method.c (defaulted_late_check): Early return if the defaulted
	declaration does not match the expected signature.

/testsuite
2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68754
	* g++.dg/cpp1y/constexpr-68754.C: Move...
	* g++.dg/cpp0x/constexpr-68754.C: ... here, adjust.

From-SVN: r253321
parent 15c77315
2017-09-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68754
* method.c (defaulted_late_check): Early return if the defaulted
declaration does not match the expected signature.
2017-09-29 Jakub Jelinek <jakub@redhat.com>
P0683R1 - default member initializers for bit-fields
......
......@@ -2191,9 +2191,11 @@ defaulted_late_check (tree fn)
|| !compparms (TYPE_ARG_TYPES (TREE_TYPE (fn)),
TYPE_ARG_TYPES (TREE_TYPE (implicit_fn))))
{
error ("defaulted declaration %q+D", fn);
error_at (DECL_SOURCE_LOCATION (fn),
"does not match expected signature %qD", implicit_fn);
error ("defaulted declaration %q+D does not match the "
"expected signature", fn);
inform (DECL_SOURCE_LOCATION (fn),
"expected signature: %qD", implicit_fn);
return;
}
if (DECL_DELETED_FN (implicit_fn))
......
2017-09-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68754
* g++.dg/cpp1y/constexpr-68754.C: Move...
* g++.dg/cpp0x/constexpr-68754.C: ... here, adjust.
2017-09-30 Jakub Jelinek <jakub@redhat.com>
PR target/82361
......
// PR c++/68754
// { dg-do compile { target c++14 } }
// { dg-do compile { target c++11 } }
struct base { };
struct derived : base {
constexpr derived& operator=(derived const&) = default;
constexpr derived& operator=(derived const&) = default; // { dg-error "defaulted declaration" "" { target { ! c++14 } } }
};
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