diff options
author | rubidium <rubidium@openttd.org> | 2009-07-29 20:24:48 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-07-29 20:24:48 +0000 |
commit | 3a6c0a9f220598a546f19bfed2b5b00483f747a9 (patch) | |
tree | e61b06f75d1c2aadde51fc0ebc53b56ab4cd5462 /src/misc | |
parent | 0930c3c0982ae511c40acfb943d042d456992288 (diff) | |
download | openttd-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.hpp | 10 | ||||
-rw-r--r-- | src/misc/dbg_helpers.cpp | 2 |
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}}; |