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

            Bug ID: 110661
           Summary: Weird handing for deleting a void* pointer
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Keywords: accepts-invalid
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: de34 at live dot cn
  Target Milestone: ---

GCC accepts the following code snipped and says that " warning: deleting
'void*' is undefined". Godbolt link: https://godbolt.org/z/xKWTGrfPc

```
constexpr int test_delete_pvoid()
{
    delete static_cast<void*>(new int);
    return 0;
}

constexpr int n = test_delete_pvoid();
```

It's contradictory that GCC considers this undefined but accepts it in constant
evaluation.

Moreover, https://eel.is/c++draft/expr.delete#1 seemingly states that deleting
a void* pointer is ill-formed.

Reply via email to