[flang-commits] [flang] 788be0d - [flang] fix build on *BSD after 4762c6557d15 (#86204)
via flang-commits
flang-commits at lists.llvm.org
Tue Apr 9 15:55:15 PDT 2024
Author: Brooks Davis
Date: 2024-04-09T15:55:11-07:00
New Revision: 788be0d9fc6aeca548c90bac5ebe6990dd3c66ec
URL: https://github.com/llvm/llvm-project/commit/788be0d9fc6aeca548c90bac5ebe6990dd3c66ec
DIFF: https://github.com/llvm/llvm-project/commit/788be0d9fc6aeca548c90bac5ebe6990dd3c66ec.diff
LOG: [flang] fix build on *BSD after 4762c6557d15 (#86204)
The HUGE definition collides with the HUGE macro from math.h. Unlike the
fix in 3149c934cb26 (#84478) (largely reverted in f95710c76519), add
another #undef HUGE since there is no practical way to make FreeBSD's
headers not define HUGE and still define XSI interfaces such as isascii
or strnlen.
Update comments above `#undef HUGE` instances to reflect the fact that
all major BSD versions (I checked DragonFly, FreeBSD, NetBSD, and
OpenBSD) leak the HUGE macro from math.h to various degrees.
Fixes #86038
Added:
Modified:
flang/include/flang/Evaluate/integer.h
flang/include/flang/Evaluate/real.h
flang/lib/Decimal/decimal-to-binary.cpp
flang/lib/Evaluate/fold-implementation.h
Removed:
################################################################################
diff --git a/flang/include/flang/Evaluate/integer.h b/flang/include/flang/Evaluate/integer.h
index 7395645701265d..b62e2bcb90f2f3 100644
--- a/flang/include/flang/Evaluate/integer.h
+++ b/flang/include/flang/Evaluate/integer.h
@@ -27,7 +27,7 @@
#include <string>
#include <type_traits>
-// Some environments, viz. glibc 2.17, allow the macro HUGE
+// Some environments, viz. glibc 2.17 and *BSD, allow the macro HUGE
// to leak out of <math.h>.
#undef HUGE
diff --git a/flang/include/flang/Evaluate/real.h b/flang/include/flang/Evaluate/real.h
index b7af0ff6b431c8..6f2466c9da6773 100644
--- a/flang/include/flang/Evaluate/real.h
+++ b/flang/include/flang/Evaluate/real.h
@@ -18,7 +18,7 @@
#include <limits>
#include <string>
-// Some environments, viz. glibc 2.17, allow the macro HUGE
+// Some environments, viz. glibc 2.17 and *BSD, allow the macro HUGE
// to leak out of <math.h>.
#undef HUGE
diff --git a/flang/lib/Decimal/decimal-to-binary.cpp b/flang/lib/Decimal/decimal-to-binary.cpp
index eebd0736b67ad4..94c51774237399 100644
--- a/flang/lib/Decimal/decimal-to-binary.cpp
+++ b/flang/lib/Decimal/decimal-to-binary.cpp
@@ -16,6 +16,10 @@
#include <cstring>
#include <utility>
+// Some environments, viz. glibc 2.17 and *BSD, allow the macro HUGE
+// to leak out of <math.h>.
+#undef HUGE
+
namespace Fortran::decimal {
template <int PREC, int LOG10RADIX>
diff --git a/flang/lib/Evaluate/fold-implementation.h b/flang/lib/Evaluate/fold-implementation.h
index 470dbe9e740997..34f79f9e6f25b4 100644
--- a/flang/lib/Evaluate/fold-implementation.h
+++ b/flang/lib/Evaluate/fold-implementation.h
@@ -39,7 +39,7 @@
#include <type_traits>
#include <variant>
-// Some environments, viz. glibc 2.17, allow the macro HUGE
+// Some environments, viz. glibc 2.17 and *BSD, allow the macro HUGE
// to leak out of <math.h>.
#undef HUGE
More information about the flang-commits
mailing list