diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2018-03-27 21:19:25 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2018-03-27 21:19:25 +0000 |
commit | f7d9ed11b28023715dfc10f29754beff86b28fe9 (patch) | |
tree | 78a20a80bcadfdaa90e3ef47c4cf71234251bf73 | |
parent | 153dba6cbb3b37ad07d23d212890b2bd055ac05f (diff) | |
download | gcc-f7d9ed11b28023715dfc10f29754beff86b28fe9.zip gcc-f7d9ed11b28023715dfc10f29754beff86b28fe9.tar.gz gcc-f7d9ed11b28023715dfc10f29754beff86b28fe9.tar.bz2 |
re PR c++/85067 (ICE with volatile parameter in defaulted copy-constructor)
/cp
2018-03-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/85067
* method.c (defaulted_late_check): Partially revert r253321 changes,
do not early return upon error.
/testsuite
2018-03-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/85067
* g++.dg/cpp0x/defaulted51.C: New.
* g++.dg/cpp0x/constexpr-68754.C: Adjust.
From-SVN: r258904
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/method.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-68754.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/defaulted51.C | 15 |
5 files changed, 28 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1799d8a..4c02981 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-03-27 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/85067 + * method.c (defaulted_late_check): Partially revert r253321 changes, + do not early return upon error. + 2018-03-27 Jakub Jelinek <jakub@redhat.com> PR c++/85077 diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 83fed6c..eaa930f 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -2189,7 +2189,6 @@ defaulted_late_check (tree fn) "expected signature", fn); inform (DECL_SOURCE_LOCATION (fn), "expected signature: %qD", implicit_fn); - return; } if (DECL_DELETED_FN (implicit_fn)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba8ba77..4c22980 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-03-27 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/85067 + * g++.dg/cpp0x/defaulted51.C: New. + * g++.dg/cpp0x/constexpr-68754.C: Adjust. + 2018-03-27 Jakub Jelinek <jakub@redhat.com> PR c++/85077 diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-68754.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-68754.C index 643fa07..72b8200 100644 --- a/gcc/testsuite/g++.dg/cpp0x/constexpr-68754.C +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-68754.C @@ -3,5 +3,5 @@ struct base { }; struct derived : base { - constexpr derived& operator=(derived const&) = default; // { dg-error "defaulted declaration" "" { target { ! c++14 } } } + constexpr derived& operator=(derived const&) = default; // { dg-error "defaulted" "" { target { ! c++14 } } } }; diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted51.C b/gcc/testsuite/g++.dg/cpp0x/defaulted51.C new file mode 100644 index 0000000..0a7d308 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/defaulted51.C @@ -0,0 +1,15 @@ +// PR c++/85067 +// { dg-do compile { target c++11 } } + +template<int> struct A +{ + A(); + A(volatile A&) = default; // { dg-error "defaulted" } +}; + +struct B +{ + A<0> a; +}; + +B b; |