The inlne asm has side effects you didn't report to gcc, so you need thevolatile here.OK thanks. I guess there is no way to report this kind of side effect? so you have to use volatile
That's exactly what volatile means: "this asm has some unspecified side effect". Segher