http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47817
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-02-19 20:59:51 UTC --- typedef unsigned int DWORD; ... typedef unsigned long long SphDocID_t; inline SphDocID_t DOCINFO2ID ( const DWORD * pDocinfo ) { return *(SphDocID_t*)pDocinfo; } ...... SphDocID_t Key ( DWORD * pData ) const { return DOCINFO2ID(pData); } void CopyKey ( SphDocID_t * pMed, DWORD * pVal ) const { *pMed = Key(pVal); } ... Actually it is obvious you are violating those rules based on the code which I Posted as what is passed into sphSort is an array of DWORD.