• dearblue's avatar
    Restore the variable `pc` after `longjmp()` · bfb7b491
    dearblue authored
    Changes made after `setjmp()` are destroyed and need reassignment.
    This problem is now caused by the addition of the `OP_JUW` instruction.
    
    When actually building on FreeBSD 12.1 with `clang10 -fsanitize=address`, mrbtest "NameError#name [15.2.31.2.1]" is failed.
    
    However, qualifying `pc` with `volatile` slows down significantly and increases the object code.
    Suppress them by qualifying only the variables that restore `pc`.
    bfb7b491
vm.c 76.1 KB