Cast to void* before casting to Node** to make the compiler do no strict-aliasing assumptions, and suppress a warning
if -fstrict-aliasing (enabled with -O2, -O3 and -Os unless forced off as is planned for the time being) is used. See http://article.gmane.org/gmane.comp.lib.wxwidgets.devel/70262 for details. Also return NULL instead of 0 in the same GetNodePtr, as the return type is a pointer, not integer. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -344,10 +344,11 @@ protected: \
|
|||||||
{ \
|
{ \
|
||||||
if( m_equals( m_getKey( (*node)->m_value ), key ) ) \
|
if( m_equals( m_getKey( (*node)->m_value ), key ) ) \
|
||||||
return node; \
|
return node; \
|
||||||
node = (Node**)&(*node)->m_nxt; \
|
/* Tell the compiler to not do any strict-aliasing assumptions with the void cast */ \
|
||||||
|
node = (Node**)(void*)&(*node)->m_nxt; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
return 0; \
|
return NULL; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
/* returns NULL if not found */ \
|
/* returns NULL if not found */ \
|
||||||
|
Reference in New Issue
Block a user