diff options
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | include/ruby/ruby.h | 2 |
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) \ |