aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/dc1.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/cpp0x/dc1.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/cpp0x/dc1.C42
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/dc1.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/dc1.C
new file mode 100644
index 0000000..e7ccb64
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/dc1.C
@@ -0,0 +1,42 @@
+// { dg-do compile { target c++11 } }
+
+struct B {
+ int i;
+ B (int _i) : i(_i) { }
+ ~B () { i = 0; }
+};
+
+struct A : public B {
+ A () : B(-1) { }
+ A (int i) : A() { }
+ A (double b) : A(static_cast<int>(b)) { }
+ A (double b, double b2) : A(b2) { }
+ ~A () { }
+};
+
+void f_A () { A a(2.0, 3.0); }
+
+struct C {
+ C () { }
+ virtual ~C() { }
+ virtual int f () = 0;
+};
+
+struct D : public C {
+ int i;
+ D (int _i) : C(), i(_i) { }
+ D () : D(-1) { }
+ virtual ~D() { }
+ virtual int f () { }
+};
+
+void f_D () { C* c = new D(); }
+
+template <typename T>
+struct E {
+ T t;
+ E () : E(T()) { }
+ E (T _t) : t(_t) { }
+};
+
+void f_E () { E<int> e; }