https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40988
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- One more note the Linux kernel sources has been corrected already. They do now: asm volatile(__ASM_SIZE(btr) " %2,%1" CC_SET(c) : CC_OUT(c) (oldbit) : ADDR, "Ir" (nr) : "memory"); return oldbit; and asm volatile(__ASM_SIZE(bts) " %1,%0" : : ADDR, "Ir" (nr) : "memory"); Which describes the same thing as "+" as the memory clobber says it will update memory too. Linux commit 5b77e95dd7790 changed it from "+" to the above. Linux commit 92934bcbf96bc (in 2006 which was included in 2.6.16) fixed it to be "+" so you must have copied the linux sources from FC6 and didn't look to see if the Linux kernel header was updated in your FC11 system.