aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-03-25 12:17:08 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-03-25 12:17:08 -0400
commit5ade176d5eb914bf78919ac2f610599059fba340 (patch)
tree6d637e3253d81a75c9cb50f2011950b451eff6da /gcc/testsuite
parent7eda336814b5c8d3ed37b4f9055889c6651eb1bb (diff)
downloadgcc-5ade176d5eb914bf78919ac2f610599059fba340.zip
gcc-5ade176d5eb914bf78919ac2f610599059fba340.tar.gz
gcc-5ade176d5eb914bf78919ac2f610599059fba340.tar.bz2
Core 1135
Core 1135 * method.c (defaulted_late_check): Check for exception spec mismatch. (defaultable_fn_check): Allow exception spec and virtual. * class.c (check_for_override): A virtual dtor is non-trivial. From-SVN: r171462
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/defaulted15.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/defaulted22.C23
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/defaulted23.C27
4 files changed, 57 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 57a7102..e2aab84 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2011-03-25 Jason Merrill <jason@redhat.com>
+ * g++.dg/cpp0x/defaulted22.C: New.
+ * g++.dg/cpp0x/defaulted23.C: New.
+ * g++.dg/cpp0x/defaulted15.C: Adjust.
+
+2011-03-25 Jason Merrill <jason@redhat.com>
+
* g++.dg/cpp0x/move1.C: New.
2011-03-25 Ira Rosen <ira.rosen@linaro.org>
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted15.C b/gcc/testsuite/g++.dg/cpp0x/defaulted15.C
index 4c5b11c..0a47c20 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted15.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted15.C
@@ -54,5 +54,5 @@ struct G: public F
struct H
{
- virtual ~H() = default; // { dg-error "declared virtual" }
+ virtual ~H() = default;
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted22.C b/gcc/testsuite/g++.dg/cpp0x/defaulted22.C
new file mode 100644
index 0000000..61e9d32
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted22.C
@@ -0,0 +1,23 @@
+// Test that a virtual defaulted constructor is still virtual.
+// { dg-do run }
+// { dg-options -std=c++0x }
+
+int r = 1;
+
+struct A
+{
+ virtual ~A() = default;
+};
+
+struct B: A
+{
+ ~B() noexcept { r = 0; }
+};
+
+A* ap = new B();
+
+int main()
+{
+ delete ap;
+ return r;
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted23.C b/gcc/testsuite/g++.dg/cpp0x/defaulted23.C
new file mode 100644
index 0000000..5b4438d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted23.C
@@ -0,0 +1,27 @@
+// Test for checking of exception specifications on defaulted fns
+// { dg-options -std=c++0x }
+
+struct A
+{
+ A() noexcept = default;
+};
+
+struct B
+{
+ B() throw (int) = default; // { dg-error "exception-specification that differs from the implicit declaration" }
+};
+
+struct C
+{
+ C() throw (int) { }
+};
+
+struct D: C
+{
+ D() throw (int) = default;
+};
+
+struct E
+{
+ E() = default;
+};