http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54669
--- Comment #2 from Marek Polacek <polacek at redhat dot com> 2012-09-22 14:22:46 UTC --- With very slightly modified testcase: int a[10]; void foo (void) { int x; int i; for (i = 0; i < 1;) { int b[3]; for (i = 0; i < 4; i++) b[i] = a[i]; if (&x) a[0] = b[0]; } } we get: x.c: In function ‘foo’: x.c:4:1: error: statement marked for throw, but doesn’t foo (void) ^ # VUSE <.MEM_15> _16 = a[0]; x.c:4:1: error: statement marked for throw, but doesn’t # .MEM_17 = VDEF <.MEM_15> b[0] = _16; x.c:4:1: error: statement marked for throw, but doesn’t # VUSE <.MEM_17> _21 = a[1]; x.c:4:1: error: statement marked for throw, but doesn’t # .MEM_22 = VDEF <.MEM_17> b[1] = _21; x.c:4:1: error: statement marked for throw, but doesn’t # VUSE <.MEM_22> _26 = a[2]; x.c:4:1: error: statement marked for throw, but doesn’t # .MEM_27 = VDEF <.MEM_22> b[2] = _26; x.c:4:1: error: statement marked for throw, but doesn’t # VUSE <.MEM_27> _31 = a[3]; x.c:4:1: internal compiler error: verify_gimple failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.