]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/58188 (ICE in gimple_add_tmp_var, at gimplify.c:738)
authorPaolo Carlini <paolo.carlini@oracle.com>
Fri, 15 Nov 2013 23:51:23 +0000 (23:51 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Fri, 15 Nov 2013 23:51:23 +0000 (23:51 +0000)
2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58188
* g++.dg/cpp0x/nsdmi-template8.C: New.

2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58725
* g++.dg/cpp0x/nsdmi-template7.C: New.

2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58829
* g++.dg/cpp0x/nsdmi-template6.C: New.

From-SVN: r204881

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/nsdmi-template6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/nsdmi-template7.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/nsdmi-template8.C [new file with mode: 0644]

index 1324a4422a978da0aba919e8ac7cb7f1146a2f14..265b8545c4c1695a0499cf035184983f1fa8a8ed 100644 (file)
@@ -1,3 +1,18 @@
+2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/58188
+       * g++.dg/cpp0x/nsdmi-template8.C: New.
+
+2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/58725
+       * g++.dg/cpp0x/nsdmi-template7.C: New.
+
+2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/58829
+       * g++.dg/cpp0x/nsdmi-template6.C: New.
+
 2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/58599
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-template6.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-template6.C
new file mode 100644 (file)
index 0000000..33ed82d
--- /dev/null
@@ -0,0 +1,13 @@
+// PR c++/58829
+// { dg-do compile { target c++11 } }
+
+struct A {
+    int f() {return 0;}
+} a;
+
+struct B {
+    template<int=0> struct C {
+        int i = a.f();
+    };
+};
+B::C<> c;
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-template7.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-template7.C
new file mode 100644 (file)
index 0000000..cec7b7b
--- /dev/null
@@ -0,0 +1,15 @@
+// PR c++/58725
+// { dg-do compile { target c++11 } }
+
+struct A {
+    template<int=0>
+    struct B {
+        struct C {
+            int x = 0;
+            double y = x;
+        } c;
+    };
+};
+int main() {
+    A::B<>();
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-template8.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-template8.C
new file mode 100644 (file)
index 0000000..ef0dddd
--- /dev/null
@@ -0,0 +1,27 @@
+// PR c++/58188
+// { dg-do compile { target c++11 } }
+
+struct B {};
+struct A
+{
+  A( B );
+};
+
+struct Bar
+{
+  template< unsigned v >
+  struct Foo
+  {
+    A z = B();
+    unsigned value;
+    Foo(): value( v ) {}
+  };
+
+  struct Baz
+  {
+    Foo< 8 > foo1;
+    Foo< 1 > foo3;
+  };
+};
+
+Bar::Baz baz;