summaryrefslogtreecommitdiff
path: root/src/misc
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-07-29 20:24:48 +0000
committerrubidium <rubidium@openttd.org>2009-07-29 20:24:48 +0000
commit3a6c0a9f220598a546f19bfed2b5b00483f747a9 (patch)
treee61b06f75d1c2aadde51fc0ebc53b56ab4cd5462 /src/misc
parent0930c3c0982ae511c40acfb943d042d456992288 (diff)
downloadopenttd-3a6c0a9f220598a546f19bfed2b5b00483f747a9.tar.xz
(svn r16983) -Change: work around a bogus GCC 4.4+ warning that can't be disabled
Diffstat (limited to 'src/misc')
-rw-r--r--src/misc/blob.hpp10
-rw-r--r--src/misc/dbg_helpers.cpp2
2 files changed, 10 insertions, 2 deletions
diff --git a/src/misc/blob.hpp b/src/misc/blob.hpp
index cdda12bd3..bd626e132 100644
--- a/src/misc/blob.hpp
+++ b/src/misc/blob.hpp
@@ -58,6 +58,10 @@ protected:
CHdr *m_pHdr_1; ///< ptr just after the CHdr holding m_size and m_max_size
} ptr_u;
+private:
+ /** Just to silence an unsilencable GCC 4.4+ warning */
+ static const CHdr hdrEmpty[];
+
public:
static const bsize_t Ttail_reserve = 4; ///< four extra bytes will be always allocated and zeroed at the end
@@ -96,8 +100,7 @@ protected:
* both m_size and m_max_size containing zero */
FORCEINLINE void InitEmpty()
{
- static CHdr hdrEmpty[] = {{0, 0}, {0, 0}};
- ptr_u.m_pHdr_1 = &hdrEmpty[1];
+ ptr_u.m_pHdr_1 = const_cast<CHdr *>(&CBlobBaseSimple::hdrEmpty[1]);
}
/** initialize blob by attaching it to the given header followed by data */
@@ -297,6 +300,9 @@ public:
/** all deallocations should happen here */
static FORCEINLINE void RawFree(CHdr *p)
{
+ /* Just to silence an unsilencable GCC 4.4+ warning */
+ assert(p != CBlobBaseSimple::hdrEmpty);
+
free(p);
}
/** fixing the four bytes at the end of blob data - useful when blob is used to hold string */
diff --git a/src/misc/dbg_helpers.cpp b/src/misc/dbg_helpers.cpp
index 1eebfdf45..e23454acf 100644
--- a/src/misc/dbg_helpers.cpp
+++ b/src/misc/dbg_helpers.cpp
@@ -167,3 +167,5 @@ void DumpTarget::EndStruct()
m_cur_struct.pop();
}
+/** Just to silence an unsilencable GCC 4.4+ warning */
+/* static */ const CBlobBaseSimple::CHdr CBlobBaseSimple::hdrEmpty[] = {{0, 0}, {0, 0}};