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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:40a990c8b512fd25bd7d7b45aa509e1880d77209

commit r15-2076-g40a990c8b512fd25bd7d7b45aa509e1880d77209
Author: Nina Ranns <dinka.ra...@gmail.com>
Date:   Thu Jul 11 17:47:34 2024 +0100

    c++/contracts: ICE in C++ Contracts with '-fno-exceptions' [PR 110159]

    We currently only initialise terminate_fn if exceptions are enabled.
    However, contract handling requires terminate_fn when building the
    contract because a contract failure may result in std::terminate call
    regardless of whether the exceptions are enabled. Refactored
    init_exception_processing to extract the initialisation of
    terminate_fn. New function init_terminate_fn added that initialises
    terminate_fn if it hasn't already been initialised. Call to terminate_fn
    added in cxx_init_decl_processing if contracts are enabled.

            PR c++/110159

    gcc/cp/ChangeLog:

            * cp-tree.h (init_terminate_fn): Declaration of a new function.
            * decl.cc (cxx_init_decl_processing): If contracts are enabled,
            call init_terminate_fn.
            * except.cc (init_exception_processing): Function refactored to
            call init_terminate_fn.
            (init_terminate_fn): Added new function that initializes
            terminate_fn if it hasn't already been initialised.

    gcc/testsuite/ChangeLog:

            * g++.dg/contracts/pr110159.C: New test.

    Signed-off-by: Nina Ranns <dinka.ra...@gmail.com>
  • [Bug c++/110159] ICEs for C++ C... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to