re PR c++/9259 (Calling a non-qualified member function within a sizeof() expression...
authorGiovanni Bajo <giovannibajo@gcc.gnu.org>
Thu, 15 Jan 2004 23:49:13 +0000 (23:49 +0000)
committerGiovanni Bajo <giovannibajo@gcc.gnu.org>
Thu, 15 Jan 2004 23:49:13 +0000 (23:49 +0000)
PR c++/9259
* g++.dg/expr/sizeof2.C: New test.

From-SVN: r75951

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

index 3655825e71752c8078e6496947594d64eaa3f4d6..c02a91a551304194ffa8e9e4f08b305660c98334 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/9259
+       * g++.dg/expr/sizeof2.C: New test.
+
 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
 
        * gcc.dg/sibcall-3.c: Replace mn10?00 with mn10300.
diff --git a/gcc/testsuite/g++.dg/expr/sizeof2.C b/gcc/testsuite/g++.dg/expr/sizeof2.C
new file mode 100644 (file)
index 0000000..ca14ff7
--- /dev/null
@@ -0,0 +1,30 @@
+// { dg-do compile }
+// Contributed by Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>
+// PR c++/9259: Allow non-qualified member calls in sizeof expressions.
+
+template <bool> struct StaticAssert;
+template <> struct StaticAssert<true> {};
+
+struct S 
+{
+  static int check ();
+  static double check2 ();
+  static const int value = sizeof(check());
+  static const int value2 = sizeof(check2());
+};
+
+template <class>
+struct T
+{
+  static int check ();
+  static double check2 ();
+  static const int value = sizeof(check());
+  static const int value2 = sizeof(check2());
+};
+
+StaticAssert<(S::value == sizeof(int))> s;
+StaticAssert<(S::value2 == sizeof(double))> s2;
+
+StaticAssert<(T<void>::value == sizeof(int))> t;
+StaticAssert<(T<void>::value2 == sizeof(double))> t2;
+