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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-09-13
     Ever confirmed|0                           |1

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #0)
> In my understanding, the following is valid C++17:
> 
> #include <new>
> 
> int main() {
>   char *c = new(std::align_val_t(512), std::nothrow) char[1024];
>   delete[] c;
>   return 0;
> }

According to Jason, this is not valid C++17, because it violates
[new.delete.array]/13:
"Requires: If the alignment parameter is not present, ptr shall have been
returned by an allocation function without an alignment parameter. If present,
the alignment argument shall equal the alignment argument passed to the
allocation function that returned ptr."

That said, we want to instrument it in libsanitizer, let me attach 2 patches
for discussions.

Reply via email to