Author: truckman
Date: Fri Mar 25 16:26:21 2016
New Revision: 1736611
URL: http://svn.apache.org/viewvc?rev=1736611&view=rev
Log:
#i126890# code: compiling with recent clang generates thousands of infinite-recu
rsion warnings about DbgOut()
If the definition of the overloaded function DbgOut() in
sal/inc/rtl/string.hxx is compiled without having first compiling
the the declaration of DbgOut() with a different signature in
tools/inc/tools/debug.hxx, the compiler thinks DbgOut() is calling
itself recursively with no means of escape.
Fix this in the case where DBG_UTIL is defined by including
<tools/debug.hxx> inside string.hxx so that the compiler will
encounter the declaration of DbgOut() in debug.hxx first in this
case. This requires adding a couple of directories to the compiler
include path so that the new consumers of <tools/debug.hxx> can
find it as well as one of its dependencies.
If DBG_UTIL is not defined, then debug.hxx does not declare DbgOut(),
so fix this case by hiding the DbgOut() definition in string.hxx
behind #ifdef DBG_UTIL since it won't be used in this case.
Modified:
openoffice/trunk/main/sal/inc/rtl/string.hxx
openoffice/trunk/main/set_soenv.in
Modified: openoffice/trunk/main/sal/inc/rtl/string.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sal/inc/rtl/string.hxx?rev=1736611&r1=1736610&r2=1736611&view=diff
==============================================================================
--- openoffice/trunk/main/sal/inc/rtl/string.hxx (original)
+++ openoffice/trunk/main/sal/inc/rtl/string.hxx Fri Mar 25 16:26:21 2016
@@ -32,6 +32,9 @@
#include <rtl/memory.h>
#include <rtl/textenc.h>
#include <rtl/string.h>
+#ifdef DBG_UTIL
+#include <tools/debug.hxx>
+#endif /* DBG_UTIL */
#if !defined EXCEPTIONS_OFF
#include <new>
@@ -969,8 +972,10 @@ struct CStringHash
/* Helper methods to support OString messages in OSL_ENSURE, DBG_ERROR,
DBG_WARN, DBG_TRACE, etc. */
inline sal_Bool SAL_CALL osl_assertFailedLine( const sal_Char* pszFileName,
sal_Int32 nLine, const ::rtl::OString& rMessage)
{ return osl_assertFailedLine( pszFileName, nLine, rMessage.getStr()); }
+#ifdef DBG_UTIL
inline void DbgOut( const rtl::OString& rMessage, sal_uInt16 nOutType, const
sal_Char* pFileName, sal_uInt16 nLineNum )
{ DbgOut( rMessage.getStr(), nOutType, pFileName, nLineNum); }
+#endif /* DBG_UTIL */
#endif /* __cplusplus */
Modified: openoffice/trunk/main/set_soenv.in
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/set_soenv.in?rev=1736611&r1=1736610&r2=1736611&view=diff
==============================================================================
--- openoffice/trunk/main/set_soenv.in (original)
+++ openoffice/trunk/main/set_soenv.in Fri Mar 25 16:26:21 2016
@@ -1380,7 +1380,9 @@ $SOLARINC = $I.$cur_dir.
$I.'$SOLARVER'.$ds.'$INPATH'.$INC.
$I.'$SOLARENV'.$ds.'$OUTPATH'.$INC.
$I.'$SOLARENV'.$INC.
- $I.'$SRC_ROOT'.$ds."res";
+ $I.'$SRC_ROOT'.$ds."res".
+ $I.'$SRC_ROOT'.$ds."tools".$INC.
+ $I.'$SRC_ROOT'.$ds."comphelper".$INC;
if ($platform =~ m/solaris|linux|osf1|freebsd|netbsd/)
{