------- Comment #2 from pinskia at gcc dot gnu dot org 2005-11-29 15:12 ------- 4.2 warns: t.cc: In function 'CvStatus icvSet_8u_C4MR(int*, int, const uchar*, int, CvSize, const int*)': t.cc:21: warning: dereferencing type-punned pointer will break strict-aliasing rules
Because the warning was not in 4.1.0 at all for C++. This is invalid as: CvStatus icvSet_8u_C4MR (int *dst, int step, const uchar * mask, int step2, CvSize size, const int *scalar) { int s0 = scalar[0]; for (; size.height--; mask += step2, (char *&) dst += step) { "(char *&) dst += step" is equaliant to *((char**)&dst) += step so we are accessing dst as a "char*" which violates alaiasing rules. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25152