# HG changeset patch # User William Roberts # Date 1276601224 -3600 # Node ID 6ab44b3687b298fbabe092e52df8beb3c53c27fa # Parent 830434fd71475babc32efa02eea9b3f07c36e250 Provide __RETURN_ADDRESS() (from kern_priv.h) to cop with GCC and RVCT - Bug 2970 diff -r 830434fd7147 -r 6ab44b3687b2 memspy/Driver/Kernel/Source/MemSpyDriverStreamWriter.cpp --- a/memspy/Driver/Kernel/Source/MemSpyDriverStreamWriter.cpp Fri Jun 11 16:29:21 2010 +0100 +++ b/memspy/Driver/Kernel/Source/MemSpyDriverStreamWriter.cpp Tue Jun 15 12:27:04 2010 +0100 @@ -21,7 +21,14 @@ #include "MemSpyDriverUtils.h" #include "MemSpyDriverXferBuffer.h" - +// from kern_priv.h +#if defined(__GCC32__) +#define __RETURN_ADDRESS() __builtin_return_address(0) +#elif defined (__ARMCC__) +#define __RETURN_ADDRESS() ((TAny*)__return_address()) +#else +#define __RETURN_ADDRESS() 0 // not supported +#endif RMemSpyMemStreamWriter::RMemSpyMemStreamWriter() : iBuffer( NULL ), iCurrent( NULL ), iMax( 0 ), iMark( NULL ), iCommitted( 0 ) @@ -69,7 +76,7 @@ } else { - TRACE( Kern::Printf( "RMemSpyMemStreamWriter::WriteInt32() - asked to write: 0x%08x from fn: 0x%08x BUT AM FULL", aValue, __return_address() ) ); + TRACE( Kern::Printf( "RMemSpyMemStreamWriter::WriteInt32() - asked to write: 0x%08x from fn: 0x%08x BUT AM FULL", aValue, __RETURN_ADDRESS() ) ); } // return ret; @@ -89,7 +96,7 @@ } else { - TRACE( Kern::Printf( "RMemSpyMemStreamWriter::WriteUint32() - asked to write: 0x%08x from fn: 0x%08x BUT AM FULL", aValue, __return_address() ) ); + TRACE( Kern::Printf( "RMemSpyMemStreamWriter::WriteUint32() - asked to write: 0x%08x from fn: 0x%08x BUT AM FULL", aValue, __RETURN_ADDRESS() ) ); } // return ret;