Siva Chandra Reddy 19c6098097 [libc] Add a resizable container with constexpr constructor and destructor.
The new container is used to store atexit callbacks. This way, we avoid
the possibility of the destructor of the container itself getting added
as an at exit callback.

Reviewed By: abrachet

Differential Revision: https://reviews.llvm.org/D121350
2022-03-10 21:28:23 +00:00

25 lines
670 B
C++

//===-- Implementation of exit --------------------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
#include "src/stdlib/exit.h"
#include "src/__support/common.h"
#include "src/stdlib/_Exit.h"
namespace __llvm_libc {
namespace internal {
void call_exit_callbacks();
}
LLVM_LIBC_FUNCTION(void, exit, (int status)) {
internal::call_exit_callbacks();
_Exit(status);
}
} // namespace __llvm_libc