X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.robertl%2Feb99.C;fp=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.robertl%2Feb99.C;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=4cced8b0a09800929c8f12adc026a42b6970fe62;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb99.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb99.C deleted file mode 100644 index 4cced8b0..00000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb99.C +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - -class ref_counted -{ - -protected: - ref_counted( void ) : _count( 0 ) {} - -public: - - unsigned int add_ref( void ) { return ++_count; } - unsigned int release( void ) { return --_count; } - unsigned int count( void ) const { return _count; } - - -protected: - unsigned int _count; -}; - - - - - -template < class T > -class ref_ptr -{ - -public: - ref_ptr( T* ptr = 0 ) : _ptr( ptr ) - { - add_ref(); - } - - ref_ptr( const ref_ptr & rptr ) : _ptr( rptr.get() ) - { - add_ref(); - } - - ~ref_ptr( void ) { release(); } - - - T* get( void ) const { return _ptr; } - T* operator->( void ) const { return get(); } - T& operator*( void ) const { return *get(); } - - bool operator!( void ) const { return get() == 0; } - bool operator==( const ref_ptr & rptr ) const { return *get() == *rptr; -} - bool operator<( const ref_ptr & rptr ) const { return *get() < *rptr; } - - - bool operator==( T* ptr ) const { return *get() == *ptr; } - bool operator<( T* ptr ) const { return *get() < *ptr; } - - const ref_ptr & operator=( const ref_ptr & rptr ) - { - release(); - _ptr = rptr.get(); - add_ref(); - - return *this; - } - - T* operator=( T* ptr ) - { - release(); - _ptr = ptr; - add_ref(); - - return _ptr; - } - -protected: - void add_ref( void ) - { - if( _ptr ) - _ptr->add_ref(); - } - - void release( void ) - { - if( _ptr && 0 == _ptr->release() ) - { - delete _ptr; - _ptr = 0; - } - } - - -protected: - T * _ptr; -}; - - -template< class T > -bool operator==( T* ptr, const ref_ptr< T > & rptr ) -{ - return *ptr == *rptr; -} - -template< class T > -bool operator<( T* ptr, const ref_ptr< T > & rptr ) -{ - return *ptr < *rptr; -} - - - -class Baz : public ref_counted { - int dummy; -}; - - -class Bar; - -int main() { - ref_ptr foo; - static_cast (foo)->DoSomething; //ERROR - invalid cast -}