diff options
author | Nathan Sidwell <nathan@acm.org> | 2000-01-05 10:11:25 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2000-01-05 10:11:25 +0000 |
commit | ac8cd718e686410e4e5488c97aa1430ab8d7c4ec (patch) | |
tree | 11d2b23202d44053b31dc85b5465263fce19061f | |
parent | c0d2229e9019c2a06b2a539680b5ad720b5a3760 (diff) | |
download | gcc-ac8cd718e686410e4e5488c97aa1430ab8d7c4ec.zip gcc-ac8cd718e686410e4e5488c97aa1430ab8d7c4ec.tar.gz gcc-ac8cd718e686410e4e5488c97aa1430ab8d7c4ec.tar.bz2 |
* g++.old-deja/g++.other/cast4.C: New test.
From-SVN: r31237
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/cast4.C | 63 |
2 files changed, 67 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 770c5bc..8f891d0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2000-01-05 Nathan Sidwell <nathan@acm.org> + + * g++.old-deja/g++.other/cast4.C: New test. + Wed Jan 5 00:26:20 2000 Jeffrey A Law (law@cygnus.com) * gcc.c-torture/compile/20000105-2.c: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.other/cast4.C b/gcc/testsuite/g++.old-deja/g++.other/cast4.C new file mode 100644 index 0000000..1571e30 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/cast4.C @@ -0,0 +1,63 @@ +// Build don't link: + +// Copyright (C) 2000 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 3 Jan 2000 <nathan@acm.org> + +// Derived from a bug report by Ulrich Drepper <drepper@cygnus.com> + +struct A {operator char * () { return 0;} }; +struct B {operator char * () const { return 0;} }; +struct C {operator char const * () { return 0;} }; +struct D {operator char const * () const { return 0;} }; + +void f0 () +{ + A a = A (); + B b = B (); + C c = C (); + D d = D (); + + static_cast <char *> (a); + static_cast <char *> (b); + static_cast <char *> (c); // ERROR - static cast + static_cast <char *> (d); // ERROR - static cast +} + +void f1 () +{ + A a = A (); + B b = B (); + C c = C (); + D d = D (); + + static_cast <const char *> (a); + static_cast <const char *> (b); + static_cast <const char *> (c); + static_cast <const char *> (d); +} + +void f2 () +{ + A const a = A (); + B const b = B (); + C const c = C (); + D const d = D (); + + static_cast <char *> (a); // ERROR - static cast + static_cast <char *> (b); + static_cast <char *> (c); // ERROR - static cast + static_cast <char *> (d); // ERROR - static cast +} + +void f3 () +{ + A const a = A (); + B const b = B (); + C const c = C (); + D const d = D (); + + static_cast <const char *> (a); // ERROR - static cast + static_cast <const char *> (b); + static_cast <const char *> (c); // ERROR - static cast + static_cast <const char *> (d); +} |