summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--prelude/slang-cpp-prelude.h13
-rw-r--r--prelude/slang-cpp-scalar-intrinsics.h6
2 files changed, 12 insertions, 7 deletions
diff --git a/prelude/slang-cpp-prelude.h b/prelude/slang-cpp-prelude.h
index 4a07674d1..d476676ed 100644
--- a/prelude/slang-cpp-prelude.h
+++ b/prelude/slang-cpp-prelude.h
@@ -3,7 +3,18 @@
#include "../slang.h"
-#include <cmath>
+// Because the signiture of isnan, isfinite, and is isinf changed in C++, we use the macro
+// to use the version in the std namespace.
+// https://stackoverflow.com/questions/39130040/cmath-hides-isnan-in-math-h-in-c14-c11
+
+#if SLANG_GCC_FAMILY && __GNUC__ < 6
+# include <cmath>
+# define SLANG_PRELUDE_STD std::
+#else
+# include <math.h>
+# define SLANG_PRELUDE_STD
+#endif
+
#include <assert.h>
#include <stdlib.h>
diff --git a/prelude/slang-cpp-scalar-intrinsics.h b/prelude/slang-cpp-scalar-intrinsics.h
index f6c35e393..07945f1e0 100644
--- a/prelude/slang-cpp-scalar-intrinsics.h
+++ b/prelude/slang-cpp-scalar-intrinsics.h
@@ -8,12 +8,6 @@
# include <intrin.h>
#endif
-// Because the signiture of isnan, isfinite, and is isinf changed in C++, we use the macro
-// to use the version in the std namespace.
-// https://stackoverflow.com/questions/39130040/cmath-hides-isnan-in-math-h-in-c14-c11
-
-#define SLANG_PRELUDE_STD std::
-
#ifdef SLANG_PRELUDE_NAMESPACE
namespace SLANG_PRELUDE_NAMESPACE {
#endif