https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90568
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The xor there is intentional, for security reasons we do not want the stack canary to stay in the register afterwards, because then it could be later spilled or accessible to some exploit in another way.