diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/badopt1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/badopt1.C | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/badopt1.C b/gcc/testsuite/g++.old-deja/g++.other/badopt1.C new file mode 100644 index 000000000..a4daa221e --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/badopt1.C @@ -0,0 +1,16 @@ +// { dg-do run } +// { dg-options "-O2" } +// Based on a testcase by Bryan Weston <bryanw@bluemoon.sps.mot.com> +// egcs 1.1 fails to increment count + + +struct Base { Base() {} }; // removing the constructor fixes the problem +struct Derived : Base {}; // so does removing the base class + +int main() { + int count = 0; + Derived* array[1]; // making this Base*[1] does not fix the problem + array[count++] = new Derived (); // but then new Base() does + if (count!=1) + return 1; +} |