aboutsummaryrefslogtreecommitdiff
path: root/libcxx/modules/std/new.cppm
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/modules/std/new.cppm')
-rw-r--r--libcxx/modules/std/new.cppm46
1 files changed, 46 insertions, 0 deletions
diff --git a/libcxx/modules/std/new.cppm b/libcxx/modules/std/new.cppm
new file mode 100644
index 000000000000..bc8eb700d445
--- /dev/null
+++ b/libcxx/modules/std/new.cppm
@@ -0,0 +1,46 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+module;
+#include <new>
+
+export module std:__new; // Note new is a keyword and not a valid identifier
+export namespace std {
+ // [alloc.errors], storage allocation errors
+ using std::bad_alloc;
+ using std::bad_array_new_length;
+
+ using std::destroying_delete;
+ using std::destroying_delete_t;
+
+ // global operator new control
+ using std::align_val_t;
+
+ using std::nothrow;
+ using std::nothrow_t;
+
+ using std::get_new_handler;
+ using std::new_handler;
+ using std::set_new_handler;
+
+ // [ptr.launder], pointer optimization barrier
+ using std::launder;
+#if 0
+ // [hardware.interference], hardware interference size
+ using std::hardware_constructive_interference_size;
+ using std::hardware_destructive_interference_size;
+#endif
+} // namespace std
+
+export {
+ using ::operator new;
+ using ::operator delete;
+ using ::operator new[];
+ using ::operator delete[];
+} // export