https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
David <gccbugzilla at limegreensocks dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gccbugzilla@limegreensocks. | |com --- Comment #5 from David <gccbugzilla at limegreensocks dot com> --- What's the status here? While there was a checkin (r203383 & r203384), this sample code still does not work correctly (4.9.0 x86_64-w64-mingw32). The fall-thru case works, but if the jump inside the asm is taken, eax does not get set to zero when it clearly should. My -O2 output is: 00000000004014e0 <foo>: 4014e0: test ecx,ecx 4014e2: mov DWORD PTR [rsp+0x10],edx 4014e6: jne 4014f3 <foo+0x13> 4014e8: bts DWORD PTR [rsp+0x10],0x1 4014ee: jb 401500 <foo+0x20> 4014f0: xor eax,eax 4014f2: ret 4014f3: mov eax,0xfffffffd 4014f8: nop DWORD PTR [rax+rax*1+0x0] 401500: repz ret 401502: data32 data32 data32 data32 nop WORD PTR cs:[rax+rax*1+0x0]