1 //===----------------------------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // UNSUPPORTED: no-threads
15 static bool AtexitImplCalled
= false;
17 extern "C" int __cxa_thread_atexit_impl(void (*dtor
)(void *), void *obj
,
19 assert(dtor
== reinterpret_cast<void (*)(void *)>(1));
20 assert(obj
== reinterpret_cast<void *>(2));
21 assert(dso_symbol
== reinterpret_cast<void *>(3));
22 AtexitImplCalled
= true;
26 int main(int, char**) {
27 int RV
= __cxxabiv1::__cxa_thread_atexit(
28 reinterpret_cast<void (*)(void *)>(1), reinterpret_cast<void *>(2),
29 reinterpret_cast<void *>(3));
31 assert(AtexitImplCalled
);