diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/overload7.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/overload7.C | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload7.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload7.C new file mode 100644 index 000000000..29a906016 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload7.C @@ -0,0 +1,42 @@ +// { dg-do run } +// GROUPS passed overloading +extern "C" int printf (const char *, ...); + +struct NoName { + + int first; + int second; +}; + +class Casted { + + public: + + NoName x; + double y; + + Casted ( int _x , double _y ): y(_y) + { + x.first = _x; + x.second = _x*2; + } + + operator NoName() const { return x; } + operator double() const { return y; } +}; + +int main() +{ + Casted c(10,12.34); + + NoName x; + double y; + + x = c; + y = c; + + if (x.first == 10 && x.second == 20 && y == 12.34) + printf ("PASS\n"); + else + { printf ("FAIL\n"); return 1; } +} |