https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119304
Bug ID: 119304
Summary: invalid placement new inside constexpr accetped for
C++26
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: accepts-invalid, c++26
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Blocks: 55004
Target Milestone: ---
Consider:
```
constexpr void *operator new (__SIZE_TYPE__, void *p) noexcept { return p; }
constexpr int f ()
{
const int i = 0;
int *p = new ((int*)&i) int (1);
return *p;
}
constexpr int i = f ();
```
This should be rejected as we can change the value of i which is const and that
would be invalid.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004
[Bug 55004] [meta-bug] constexpr issues