//===----------------------------------------------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//

// UNSUPPORTED: libcpp-has-no-threads

// This test ensures that std::memory_order has the same size under all
// standard versions to make sure we're not breaking the ABI. This is
// relevant because std::memory_order is a scoped enumeration in C++20,
// but an unscoped enumeration pre-C++20.
//
// See PR40977 for details.

#include <atomic>
#include <type_traits>


enum cpp17_memory_order {
  cpp17_memory_order_relaxed, cpp17_memory_order_consume, cpp17_memory_order_acquire,
  cpp17_memory_order_release, cpp17_memory_order_acq_rel, cpp17_memory_order_seq_cst
};

static_assert((std::is_same<std::underlying_type<cpp17_memory_order>::type,
                            std::underlying_type<std::memory_order>::type>::value),
  "std::memory_order should have the same underlying type as a corresponding "
  "unscoped enumeration would. Otherwise, our ABI changes from C++17 to C++20.");

int main(int, char**) {
  return 0;
}
