------- Comment #4 from gcaprino at gmail dot com 2008-05-22 23:03 ------- (In reply to comment #3) > >I'm sorry, but I don't understand what you mean. > *((unsigned int *)(&(p1)->data[0])), > You are accessing a char array as an unsigned int which violates C/C++ > aliasing > rules and causes undefined code at runtime.
Ah, I see what you mean. Yes, you are right. That came out of some macro expansion. Unfortunately I can still see the problem in the location list when I reference the array elements without the casts: _Log("abc", (__FUNCTION__+((__FUNCTION__[(sizeof("FSS") - 1)] == '_') ? (sizeof("FSS") - 1) + 1 : (sizeof("FSS") - 1))), 237 , (p1)->f1, (p1)->length, p1->data[0], p1->data[4], p1->data[8], p1->data[12], p1->data[16], p1->data[20], p1->data[24], p1->data[28], p1->data[32], p1->data[40], p1->data[48], p1->data[56], p2); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36303