[all-commits] [llvm/llvm-project] 7cb66a: [libc++] Implement LWG4477: placement operator del...

Fernando Pelliccioni via All-commits all-commits at lists.llvm.org
Wed Apr 8 06:48:55 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7cb66a448ace7ae2acd84e7e9bec73cfc560efe0
      https://github.com/llvm/llvm-project/commit/7cb66a448ace7ae2acd84e7e9bec73cfc560efe0
  Author: Fernando Pelliccioni <fpelliccioni at gmail.com>
  Date:   2026-04-08 (Wed, 08 Apr 2026)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/__new/placement_new_delete.h
    M libcxx/include/new
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp

  Log Message:
  -----------
  [libc++] Implement LWG4477: placement operator delete should be constexpr (#189915)

Implement the proposed resolution of
[LWG4477](https://cplusplus.github.io/LWG/issue4477).

P2747R2 made placement `operator new` constexpr since C++26, but the
corresponding placement `operator delete` was not. When a constructor
throws during placement new in a constant expression, the placement
delete is invoked and fails because it's not constexpr.

Add `_LIBCPP_CONSTEXPR_SINCE_CXX26` to placement `operator delete(void*,
void*)` and `operator delete[](void*, void*)`.

Closes #189843



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list