// Copyright 2018 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT

#pragma once

// This is used by libc++'s <new> just for std::abort.

#include <__config>
#include <stdlib.h>

_LIBCPP_BEGIN_NAMESPACE_STD

using ::abort;

_LIBCPP_END_NAMESPACE_STD
