http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46781
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-01-03 20:31:55 UTC --- (In reply to comment #3) > Comment on attachment 22612 [details] > Code produced by GCC 4.6.0 > > (In reply to comment #2) > > Where did you get this testcase from? > > May I know why do you ask? To see if the change indeed causes important regressions in real-world code. The change was done to be less surprising when doing TBAA based disambiguations as people regularly expect void * to be similar to char * and also do not really handle multiple-indirect pointers the correct way. Thus, we now miscompile less not strictly conforming programs. > IIRC, it was distilled from some large program. There was a difference when > compiling it with and without LTO, and I reported it as a bug 43201. Ah, that explains it (LTO did the pointer TBAA thing for a long time).