diff options
author | Simon Martin <simon@nasilyan.com> | 2024-11-11 20:22:32 +0100 |
---|---|---|
committer | Simon Martin <simon@nasilyan.com> | 2024-11-11 20:22:32 +0100 |
commit | f32e7339871beec0e4d49698f7e34d77ee882088 (patch) | |
tree | 352ceda31244d2203b81b58ed6a324741592fb9a /gcc/tree-vectorizer.h | |
parent | 417b4cc9bf218083838aeab458bbb7510e36375a (diff) | |
download | gcc-f32e7339871beec0e4d49698f7e34d77ee882088.zip gcc-f32e7339871beec0e4d49698f7e34d77ee882088.tar.gz gcc-f32e7339871beec0e4d49698f7e34d77ee882088.tar.bz2 |
c++: Fix another crash with invalid new operators [PR117463]
Even though this PR is very close to PR117101, it's not addressed by the
fix I made through r15-4958-g5821f5c8c89a05 because cxx_placement_new_fn
has the very same issue as std_placement_new_fn_p used to have.
As suggested by Jason, this patch changes both functions so that
cxx_placement_new_fn leverages std_placement_new_fn_p which reduces code
duplication and fixes the PR.
PR c++/117463
gcc/cp/ChangeLog:
* constexpr.cc (cxx_placement_new_fn): Implement in terms of
std_placement_new_fn_p.
* cp-tree.h (std_placement_new_fn_p): Declare.
* init.cc (std_placement_new_fn_p): Add missing checks to ensure
that fndecl is a non-replaceable ::operator new.
gcc/testsuite/ChangeLog:
* g++.dg/init/new54.C: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions