From: Mart Raudsepp Date: Tue, 14 Feb 2006 09:21:37 +0000 (+0000) Subject: Cast to void* before casting to Node** to make the compiler do no strict-aliasing... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9a71e770e1dd7049e762d95e3b4c8876d1258a0c 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 --- diff --git a/include/wx/hashmap.h b/include/wx/hashmap.h index 8e8cffcc56..97e0456013 100644 --- a/include/wx/hashmap.h +++ b/include/wx/hashmap.h @@ -344,10 +344,11 @@ protected: \ { \ if( m_equals( m_getKey( (*node)->m_value ), key ) ) \ 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 */ \