diff options
author | Marek Polacek <polacek@redhat.com> | 2019-06-08 12:51:07 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2019-06-08 12:51:07 +0000 |
commit | 8d7a99bd3345bff1640ad69c7f33a0736f46590f (patch) | |
tree | d1407dba755e50e8333467c0ffe7fabb7665d7cf /gcc | |
parent | 3a9debbd7660bafbd7658c9e843eddbac8980188 (diff) | |
download | gcc-8d7a99bd3345bff1640ad69c7f33a0736f46590f.zip gcc-8d7a99bd3345bff1640ad69c7f33a0736f46590f.tar.gz gcc-8d7a99bd3345bff1640ad69c7f33a0736f46590f.tar.bz2 |
re PR c++/72845 (gcc crashes (ICE) when compiling program with complex noexcept declaration)
PR c++/72845
* g++.dg/cpp0x/noexcept41.C: New test.
From-SVN: r272078
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/noexcept41.C | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 372b06b..72ee262 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-06-08 Marek Polacek <polacek@redhat.com> + + PR c++/72845 + * g++.dg/cpp0x/noexcept41.C: New test. + 2019-06-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * gcc.target/aarch64/sve/init_1.c: Remove options diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept41.C b/gcc/testsuite/g++.dg/cpp0x/noexcept41.C new file mode 100644 index 0000000..4cd3d8d --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept41.C @@ -0,0 +1,12 @@ +// PR c++/72845 +// { dg-do compile { target c++11 } } + +template <typename> struct g { static const int h = 0; }; +template <typename i> void declval() { static_assert(!g<i>::h,""); } +template <typename> struct a { + template <typename d, typename c> + friend auto f(d &&, c &&) noexcept(declval<c>) -> decltype(declval<c>); // { dg-error "different exception" } +}; +template <typename d, typename c> auto f(d &&, c &&) -> decltype(declval<c>); +struct e {}; +static_assert((e{}, declval<a<int>>),""); // { dg-error "no context to resolve type" } |