0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-25 16:22:35 +01:00

ircd::util::fpe: Add interface to set the except flag.

This commit is contained in:
Jason Volk 2019-03-04 11:23:25 -08:00
parent 19e09b0ad5
commit 63d591b2b8
2 changed files with 11 additions and 1 deletions

View file

@ -18,7 +18,9 @@ namespace ircd::util::fpe
string_view reflect_sicode(const int &);
string_view reflect(const ushort &flag);
string_view reflect(const mutable_buffer &, const ushort &flags);
void throw_errors(const ushort &flags);
std::fexcept_t set(const ushort &flag);
}
/// Perform a single floating point operation at a time within the scope
@ -26,7 +28,7 @@ namespace ircd::util::fpe
/// unit for an error status flag and throw a C++ exception.
struct ircd::util::fpe::errors_handle
{
fexcept_t theirs;
std::fexcept_t theirs;
public:
ushort pending() const;

View file

@ -32,6 +32,14 @@ ircd::util::size(std::ostream &s)
#pragma STDC FENV_ACCESS on
#endif
std::fexcept_t
ircd::util::fpe::set(const ushort &flags)
{
std::fexcept_t theirs;
syscall(std::fesetexceptflag, &theirs, flags);
return theirs;
}
void
ircd::util::fpe::throw_errors(const ushort &flags)
{