diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/temp.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/temp.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/temp.C b/gcc/testsuite/g++.old-deja/g++.mike/temp.C new file mode 100644 index 000000000..0a5ce5812 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/temp.C @@ -0,0 +1,32 @@ +// { dg-do run } +extern "C" int printf(const char *, ...); +extern "C" const char *getenv(const char *); + +class T { + int i; +public: + T() { + i = 1; + printf("T() at %x\n", this); + } + T(const T& o) { + i = o.i; + printf("T(const T&) at %x <-- %x\n", this, &o); + } + T operator +(const T& o) { + T r; + r.i = this->i + o.i; + return r; + } + operator int () { + return i; + } + ~T() { printf("~T() at %x\n", this); } +} s, b; + +int foo() { return getenv("TEST") == 0; } + +int main() { + int i = foo() ? s+b : s; + return i != 2; +} |