summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac7
-rw-r--r--include/ruby/ruby.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index d562b16b6f..3b740e0ff5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -730,6 +730,13 @@ test -z "${ac_env_CFLAGS_set}" -a -n "${cflags+set}" && eval CFLAGS="\"$cflags $
test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" && eval CXXFLAGS="\"$cxxflags $ARCH_FLAG\""
}
+AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
+ int main(void) {
+ return __extension__ ({ int a = 0; a; });
+ }
+ ]])],
+ [AC_DEFINE(HAVE_STMT_AND_DECL_IN_EXPR, 1)])
+
: "header and library section" && {
AC_ARG_WITH(winnt-ver,
AS_HELP_STRING([--with-winnt-ver=0xXXXX], [target Windows NT version (default to 0x0600)]),
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index e901c290d1..d983114e0a 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -1818,7 +1818,7 @@ VALUE rb_check_symbol(volatile VALUE *namep);
do RUBY_CONST_ID_CACHE((var) =, (str)) while (0)
#define CONST_ID_CACHE(result, str) RUBY_CONST_ID_CACHE(result, str)
#define CONST_ID(var, str) RUBY_CONST_ID(var, str)
-#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P
+#if defined(HAVE_BUILTIN___BUILTIN_CONSTANT_P) && defined(HAVE_STMT_AND_DECL_IN_EXPR)
/* __builtin_constant_p and statement expression is available
* since gcc-2.7.2.3 at least. */
#define rb_intern(str) \