On 7/16/24 5:03 AM, Nina Dinka Ranns wrote:
Hello,
We currently only initialise terminate_fn if exceptions are enabled.
However, contract handling requires terminate_fn when building the
contract as a contract failure may result in std::terminate call
regardless of whether the exceptions are enabled. Added possible
initialisation of terminate_fn if contracts are enabled. Minor refactoring
of the init_exception_processing to reuse the terminate_fn initialisation.
Tested on x86_64-pc-linux-gnu.
Patch attached to the email in hope of it being a workable solution for
my email client.
"OK for trunk?" :)
git gcc-style:
=== ERROR type #1: dot, space, space, end of comment (1 error(s)) ===
gcc/cp/except.cc:46:33: handling and contract handling.█*/
=== ERROR type #2: there should be exactly one space between function
name and parenthesis (3 error(s)) ===
gcc/cp/cp-tree.h:7197:31:extern void init_terminate_fn (void);
gcc/cp/decl.cc:5176:21: init_terminate_fn();
gcc/cp/except.cc:76:19: init_terminate_fn();
Note that gcc-style has frequent false positives, such as the cp-tree.h
"error" which is actually fine. But the others should be corrected.
Jason