Files
clang-p2996/libc/utils/testutils/RoundingModeUtils.h
Alex Brachet 04c681d195 [libc] Specify rounding mode for strto[f|d] tests
The specified rounding mode will be used and restored
to what it was before the test ran.

Additionally, it moves ForceRoundingMode and RoundingMode
out of MPFRUtils to be used in more places.

Differential Revision: https://reviews.llvm.org/D129685
2022-07-13 20:20:30 +00:00

35 lines
1004 B
C++

//===-- RoundingModeUtils.h -------------------------------------*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LIBC_UTILS_TESTUTILS_ROUNDINGMODEUTILS_H
#define LLVM_LIBC_UTILS_TESTUTILS_ROUNDINGMODEUTILS_H
#include <stdint.h>
namespace __llvm_libc {
namespace testutils {
enum class RoundingMode : uint8_t { Upward, Downward, TowardZero, Nearest };
struct ForceRoundingMode {
ForceRoundingMode(RoundingMode);
~ForceRoundingMode();
int old_rounding_mode;
int rounding_mode;
};
template <RoundingMode R> struct ForceRoundingModeTest : ForceRoundingMode {
ForceRoundingModeTest() : ForceRoundingMode(R) {}
};
} // namespace testutils
} // namespace __llvm_libc
#endif // LLVM_LIBC_UTILS_TESTUTILS_ROUNDINGMODEUTILS_H