summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-09-20 10:22:54 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-09-23 16:00:18 -0400
commite78752df0cb5c22826d75751229b017b58f6dcab (patch)
treec907e8baf11143f740fb3420641690440de85e46
parenta940ba7f5004d1ce8941a98341fda0cac4d11bfb (diff)
downloadhaskell-e78752df0cb5c22826d75751229b017b58f6dcab.tar.gz
rts: Ensure that headers don't refer to undefined __STDC_VERSION__
Previously the C/C++ language version check in STG could throw an undefined macro warning due to __STDC_VERSION__ when compiled with a C++ compiler. Fix this by defining __STDC_VERSION__==0 when compiling with a C++ compiler. Fixes #20394.
-rw-r--r--rts/include/Stg.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/rts/include/Stg.h b/rts/include/Stg.h
index 46f71c0241..981e72e808 100644
--- a/rts/include/Stg.h
+++ b/rts/include/Stg.h
@@ -25,6 +25,12 @@
#pragma once
+// Ensure that we don't get a -Wundef warning for __STDC_VERSION if compiling
+// with a C++ compiler. See #20394.
+#if defined(__cplusplus)
+#define __STDC_VERSION__ 0
+#endif
+
#if !(__STDC_VERSION__ >= 199901L) && !(__cplusplus >= 201103L)
# error __STDC_VERSION__ does not advertise C99, C++11 or later
#endif