Skip to content
Snippets Groups Projects
  • Alessandro Di Federico's avatar
    069ae70d
    Fix handling of devirtualized calls · 069ae70d
    Alessandro Di Federico authored
    When we have an indirect call (or jump) we are sometimes able to
    identify one or more possible targets, therefore, as an optimization,
    before performing the indirect jump we check if the target is one of the
    expected ones.
    
    This optimization however was creating two issues with the handling of
    indirect function calls: 1) the call to the `function_call` marker was
    no longer positioned right before the terminator and 2) the function
    call was no longer identified as an indirect function call but as call
    to `anyPC`. This commit fixes these two issues.
    
    These issues have been identified thanks to a report from Andrea
    Gussoni.
    069ae70d
    History
    Fix handling of devirtualized calls
    Alessandro Di Federico authored
    When we have an indirect call (or jump) we are sometimes able to
    identify one or more possible targets, therefore, as an optimization,
    before performing the indirect jump we check if the target is one of the
    expected ones.
    
    This optimization however was creating two issues with the handling of
    indirect function calls: 1) the call to the `function_call` marker was
    no longer positioned right before the terminator and 2) the function
    call was no longer identified as an indirect function call but as call
    to `anyPC`. This commit fixes these two issues.
    
    These issues have been identified thanks to a report from Andrea
    Gussoni.