[libc-commits] [libc] [libc][fenv] Add missing FE_* definitions for some environment. (PR #91519)
via libc-commits
libc-commits at lists.llvm.org
Wed May 8 12:03:13 PDT 2024
https://github.com/lntue created https://github.com/llvm/llvm-project/pull/91519
None
>From 6f2f641ab8ba264e7fcfeb0da48bae77bc0e3121 Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Wed, 8 May 2024 19:00:21 +0000
Subject: [PATCH] [libc][fenv] Add missing FE_* definitions for some
environment.
---
libc/hdr/fenv_macros.h | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/libc/hdr/fenv_macros.h b/libc/hdr/fenv_macros.h
index 041fca5f224b3..2ebff4caba90d 100644
--- a/libc/hdr/fenv_macros.h
+++ b/libc/hdr/fenv_macros.h
@@ -17,10 +17,34 @@
#include <fenv.h>
+// In some environment, FE_ALL_EXCEPT is set to 0 and the remaining exceptions
+// FE_* are missing.
+#if (FE_ALL_EXCEPT == 0)
+#ifndef FE_DIVBYZERO
+#define FE_DIVBYZERO 0
+#endif // FE_DIVBYZERO
+
+#ifndef FE_INEXACT
+#define FE_INEXACT 0
+#endif // FE_INEXACT
+
+#ifndef FE_INVALID
+#define FE_INVALID 0
+#endif // FE_INVALID
+
+#ifndef FE_OVERFLOW
+#define FE_OVERFLOW 0
+#endif // FE_OVERFLOW
+
+#ifndef FE_UNDERFLOW
+#define FE_UNDERFLOW 0
+#endif // FE_UNDERFLOW
+#else
// If this is not provided by the system, define it for use internally.
#ifndef __FE_DENORM
#define __FE_DENORM (1 << 6)
#endif
+#endif
#endif // LLVM_LIBC_FULL_BUILD
More information about the libc-commits
mailing list