summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authordearblue <[email protected]>2021-07-17 20:32:38 +0900
committerdearblue <[email protected]>2021-07-17 20:32:38 +0900
commitdbd249cace646b25b929e92eb26083a1826fd30f (patch)
tree4ed47d5c7e65c6af2a226f4274db18bbc678436a /include
parentd4e22c2cec78945fa192917bfe44c6a0f979d7ee (diff)
downloadmruby-dbd249cace646b25b929e92eb26083a1826fd30f.tar.gz
mruby-dbd249cace646b25b929e92eb26083a1826fd30f.zip
Output an error if the `INTPTR_MAX` macro is undefined in C++
When doing `conf.enable_cxx_abi` and compiling with FreeBSD + clang or MinGW, such as `INTPTR_MAX` constant macro is not defined if `#include <stdint.h>` precedes `#include <mruby.h>`. Currently I get a warning when I use an undefined macro, but if I don't notice it I get confused in a link error. It can be expected that the problem will be easier to understand by making a clear error. Adding `-Werror=undef` as a compiler flag can also result in an error, but this can be a problem if the system header file itself uses undefined macros, for example. This patch does minimal confirmation only, but has no side effects.
Diffstat (limited to 'include')
-rw-r--r--include/mruby.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 93aab5672..77f862356 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -44,6 +44,9 @@
#include <limits.h>
#ifdef __cplusplus
+#ifndef UINTPTR_MAX
+#error Must be placed `#include <mruby.h>` before `#include <stdint.h>`
+#endif
#ifndef SIZE_MAX
#ifdef __SIZE_MAX__
#define SIZE_MAX __SIZE_MAX__