https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108132

--- Comment #1 from qinzhao at gcc dot gnu.org ---
As we checked the assembly and the IR, the wrong transformation is something
like the following at source code level: (inside function "main")

from : 
        a=f(a); 
        b=true; 
to: 
        b=true; 
        a=f(a) 

since there is a "longjmp" inside the function "f", I think that it's not 
correct  to move b=true before the function call. 

I think that the function "f" which has a "longjmp" should be treated as a
memory barrier, any insn movement should not across it. 

This problem exists back to gcc8.

Reply via email to