diff options
author | Marek Polacek <polacek@redhat.com> | 2019-06-18 21:50:51 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2019-06-18 21:50:51 +0000 |
commit | ab2c347c358036f017003ab7c1043705c6482a8c (patch) | |
tree | e047d082fd800beb5ee7f372aa1ec0373ed7188e | |
parent | 8797dd71e710120158a191ace6dbe769b2485cf0 (diff) | |
download | gcc-ab2c347c358036f017003ab7c1043705c6482a8c.zip gcc-ab2c347c358036f017003ab7c1043705c6482a8c.tar.gz gcc-ab2c347c358036f017003ab7c1043705c6482a8c.tar.bz2 |
re PR c++/84698 (ICE when using noexcept(noexcept()) declaration on global friend function of template class)
PR c++/84698
* g++.dg/cpp0x/noexcept42.C: New test.
From-SVN: r272443
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/noexcept42.C | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a348251..2848d2c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2019-06-18 Marek Polacek <polacek@redhat.com> + PR c++/84698 + * g++.dg/cpp0x/noexcept42.C: New test. + PR c++/71548 * g++.dg/cpp0x/variadic177.C: New test. diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept42.C b/gcc/testsuite/g++.dg/cpp0x/noexcept42.C new file mode 100644 index 0000000..5d7218d --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept42.C @@ -0,0 +1,21 @@ +// PR c++/84698 +// { dg-do compile { target c++11 } } + +template<typename A, typename B> +struct X { + void swap(X& o) noexcept { } + + template<typename... Args> + friend void swap(X<Args...>& a, X<Args...>& b) noexcept(noexcept(a.swap(b))); +}; + +template<typename... Args> +inline void swap(X<Args...>& a, X<Args...>& b) noexcept(noexcept(a.swap(b))) +{ +} + +int +main () +{ + X<int, int> x; +} |