This issue was identified during a Codex code review.
cl::function and the external-storage branch of value_proxy write pointer objects into std::byte buffers through reinterpret_cast without explicitly starting the lifetime of those pointer objects.
Although this works with the currently supported compilers, it is not formally well-defined under the project's minimum C++17 standard.
Use placement new and proper typed access, or replace the raw byte-storage representation with an explicitly managed pointer/union representation.
This issue was identified during a Codex code review.
cl::functionand the external-storage branch ofvalue_proxywrite pointer objects intostd::bytebuffers throughreinterpret_castwithout explicitly starting the lifetime of those pointer objects.Although this works with the currently supported compilers, it is not formally well-defined under the project's minimum C++17 standard.
Use placement new and proper typed access, or replace the raw byte-storage representation with an explicitly managed pointer/union representation.