re PR c++/9259 (Calling a non-qualified member function within a sizeof() expression leads to "invalid use of undefined type")
PR c++/9259 * g++.dg/expr/sizeof2.C: New test. From-SVN: r75951
This commit is contained in:
parent
e9c4897b28
commit
18eba5570b
@ -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.
|
||||
|
30
gcc/testsuite/g++.dg/expr/sizeof2.C
Normal file
30
gcc/testsuite/g++.dg/expr/sizeof2.C
Normal file
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user