aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2019-06-08 12:51:07 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2019-06-08 12:51:07 +0000
commit8d7a99bd3345bff1640ad69c7f33a0736f46590f (patch)
treed1407dba755e50e8333467c0ffe7fabb7665d7cf /gcc
parent3a9debbd7660bafbd7658c9e843eddbac8980188 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/noexcept41.C12
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" }