http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55750
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-20 08:51:38 UTC --- Invalid already at gimple dump: foo (unsigned int i) { <unnamed-unsigned:7> * D.1723; <unnamed-unsigned:7> D.1724; <unnamed-unsigned:7> D.1725; <unnamed-unsigned:7> D.1726; D.1723 = &arr[i].n; D.1724 = arr[i].n; D.1725 = D.1724; D.1726 = D.1725 + 1; *D.1723 = D.1726; } Obviously, taking address of a bitfield is wrong.