author | zecke <zecke> | 2003-08-18 10:51:18 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-08-18 10:51:18 (UTC) |
commit | 58a2e0e7804a01f53153ee0dc58725e654d8d191 (patch) (side-by-side diff) | |
tree | b5079fc7b5b4674d906fafd4caa09d938fb13dc7 | |
parent | bbe788821dd43351b96c7a8826f1b7d904f33fdb (diff) | |
download | opie-58a2e0e7804a01f53153ee0dc58725e654d8d191.zip opie-58a2e0e7804a01f53153ee0dc58725e654d8d191.tar.gz opie-58a2e0e7804a01f53153ee0dc58725e654d8d191.tar.bz2 |
If gnuc > 2 define our own __cxa_pure_virtual
this allows us to link with gcc
with latest gcc3.3.1pre1 toolchain
-rw-r--r-- | library/qpeapplication.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 4e08a1f..d1a7cd2 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -1743,64 +1743,76 @@ void QPEApplication::installTranslation( const QString& baseName ) { QString tfn = qpeDir() + "/i18n/"+baseName; if ( trans->load( tfn ) ) installTranslator( trans ); else delete trans; } /*! \internal User initiated quit. Makes the window 'Go Away'. If preloaded this means hiding the window. If not it means quitting the application. As this is user initiated we don't need to check state. */ void QPEApplication::hideOrQuit() { processEvents(); // If we are a preloaded application we don't actually quit, so emit // a System message indicating we're quasi-closing. if ( d->preloaded && d->qpe_main_widget ) #ifndef QT_NO_COP { QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); e << d->appName; d->qpe_main_widget->hide(); } #endif else quit(); } +#if (__GNUC__ > 2 ) +extern "C" void __cxa_pure_virtual(); + +void __cxa_pure_virtual() +{ + fprintf( stderr, "Pure virtual called\n"); + abort(); + +} + +#endif + #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_RAMSES) // The libraries with the skiff package (and possibly others) have // completely useless implementations of builtin new and delete that // use about 50% of your CPU. Here we revert to the simple libc // functions. void* operator new[]( size_t size ) { return malloc( size ); } void* operator new( size_t size ) { return malloc( size ); } void operator delete[]( void* p ) { free( p ); } void operator delete[]( void* p, size_t /*size*/ ) { free( p ); } void operator delete( void* p ) { free( p ); |