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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alexander Monakov <amona...@gcc.gnu.org>:

https://gcc.gnu.org/g:cef0c0bb13e2953b41caca0506ab1d41c56f29de

commit r14-457-gcef0c0bb13e2953b41caca0506ab1d41c56f29de
Author: Alexander Monakov <amona...@ispras.ru>
Date:   Thu Jan 19 19:25:04 2023 +0300

    do not tailcall __sanitizer_cov_trace_pc [PR90746]

    When instrumentation is requested via -fsanitize-coverage=trace-pc, GCC
    emits calls of __sanitizer_cov_trace_pc callback in each basic block.
    This callback is supposed to be implemented by the user, and should be
    able to identify the containing basic block by inspecting its return
    address. Tailcalling the callback prevents that, so disallow it.

    gcc/ChangeLog:

            PR sanitizer/90746
            * calls.cc (can_implement_as_sibling_call_p): Reject calls
            to __sanitizer_cov_trace_pc.

    gcc/testsuite/ChangeLog:

            PR sanitizer/90746
            * gcc.dg/sancov/basic0.c: Verify absence of tailcall.
  • [Bug sanitizer/90746] __sanitiz... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to