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

--- Comment #11 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alexandre Oliva <aol...@gcc.gnu.org>:

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

commit r14-9985-gc39dc5bb65c492fafc5a0fde83708b8d24e0338d
Author: Alexandre Oliva <ol...@adacore.com>
Date:   Tue Apr 16 01:24:59 2024 -0300

    [strub] improve handling of indirected volatile parms [PR112938]

    The earlier patch for PR112938 arranged for volatile parms to be made
    indirect in internal strub wrapped bodies.

    The first problem that remained, more evident, was that the indirected
    parameter remained volatile, despite the indirection, but it wasn't
    regimplified, so indirecting it was malformed gimple.

    Regimplifying turned out not to be needed.  The best course of action
    was to drop the volatility from the by-reference parm, that was being
    unexpectedly inherited from the original volatile parm.

    That exposed another problem: the dereferences would then lose their
    volatile status, so we had to bring volatile back to them.


    for  gcc/ChangeLog

            PR middle-end/112938
            * ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from
            indirected parm.
            (maybe_make_indirect): Restore volatility in dereferences.

    for  gcc/testsuite/ChangeLog

            PR middle-end/112938
            * g++.dg/strub-internal-pr112938.cc: New.
  • [Bug middle-end/112938] ice wit... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to