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

// <type_traits>

// __libcpp_is_constant_evaluated()

// returns false when there's no constant evaluation support from the compiler.
//  as well as when called not in a constexpr context

#include <type_traits>
#include <cassert>

#include "test_macros.h"

int main (int, char**) {
    ASSERT_SAME_TYPE(decltype(std::__libcpp_is_constant_evaluated()), bool);
    ASSERT_NOEXCEPT(std::__libcpp_is_constant_evaluated());

#if !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED) && !defined(_LIBCPP_CXX03_LANG)
    static_assert(std::__libcpp_is_constant_evaluated(), "");
#endif

    bool p = std::__libcpp_is_constant_evaluated();
    assert(!p);

    return 0;
    }
