diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p789a.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p789a.C | 44 |
1 files changed, 1 insertions, 43 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C b/gcc/testsuite/g++.old-deja/g++.mike/p789a.C index 9086ff54cfe..fca7aa3a92f 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p789a.C @@ -1,43 +1 @@ -// global and local multidimensional array objects are not getting -// constructors called on any dimension, other than the first. Also, -// the destructors are not being called. Seems odd, they probably -// used to work. :-( -// prms-id: 789 - -extern "C" void printf (char *, ...); -struct foo -{ - static int count; - void print (int i, int j) { printf ("foo[%d][%d] = %d\n", i, j, x); } - int x; - foo () { - x = count++; - printf("this %d = %x\n", x, (void *)this); - } - virtual ~foo () { - printf("this %d = %x\n", x, (void *)this); - --count; - } -}; -int foo::count; - - -main () -{ - { - foo array[3][3]; - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 3; j++) - { - printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]); - } - } - // The count should be nine, if not, fail the test. - if (foo::count != 9) - return 1; - } - if (foo::count != 0) - return 1; - return 0; -} +int main () |