]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/10750 (error with using template template expression in static const initia...
authorGiovanni Bajo <giovannibajo@libero.it>
Mon, 30 Jun 2003 18:46:19 +0000 (20:46 +0200)
committerWolfgang Bangerth <bangerth@gcc.gnu.org>
Mon, 30 Jun 2003 18:46:19 +0000 (12:46 -0600)
2003-06-17  Giovanni Bajo  <giovannibajo@libero.it>

        PR c++/10750
        * g++.dg/parse/constant2.C: New test.

From-SVN: r68721

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/constant2.C [new file with mode: 0644]

index b0d13f2c2f2c4b30c9e19bcf292537d8c1315840..5163f6278cd69de455de73f890ba22d8de96f1fd 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-17  Giovanni Bajo  <giovannibajo@libero.it>
+
+        PR c++/10750
+        * g++.dg/parse/constant2.C: New test.
+
 2003-06-30  Giovanni Bajo <giovannibajo@libero.it>
 
         PR c++/11106
diff --git a/gcc/testsuite/g++.dg/parse/constant2.C b/gcc/testsuite/g++.dg/parse/constant2.C
new file mode 100644 (file)
index 0000000..43fad2e
--- /dev/null
@@ -0,0 +1,28 @@
+// { dg-do compile }
+// Origin: <gawrilow at math dot tu-berlin dot de>
+// PR c++/10750: error when using a static const member initialized 
+//  with a dependent expression as constant-expression
+
+struct A
+{
+  enum { a = 42 };
+};
+
+template <class Q>
+struct B
+{
+  static const int b = Q::a;
+};
+
+template <typename T, template <typename> class P>
+struct C
+{
+  static const bool a = T::a;
+  static const bool a_ = a;
+  static const bool b = P<T>::b;
+  static const bool b_ = b;
+  static const int c = sizeof(T);
+  static const int c_ = c;
+};
+
+template struct C<A,B>;