diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | eval_error.c | 2 | ||||
-rw-r--r-- | include/ruby/encoding.h | 2 | ||||
-rw-r--r-- | include/ruby/intern.h | 2 | ||||
-rw-r--r-- | internal.h | 10 |
6 files changed, 15 insertions, 8 deletions
@@ -1,3 +1,9 @@ +Fri May 13 03:11:20 2016 NARUSE, Yui <naruse@ruby-lang.org> + + * configure.in (__builtin_constant_p): check. + + * interna.h: Use HAVE_BUILTIN___BUILTIN_CONSTANT_P + Fri May 13 03:10:39 2016 NARUSE, Yui <naruse@ruby-lang.org> * configurein: use alternative keyword diff --git a/configure.in b/configure.in index d90fefbad5..5bafecaa60 100644 --- a/configure.in +++ b/configure.in @@ -2445,6 +2445,7 @@ RUBY_CHECK_BUILTIN_FUNC(__builtin_clzl, [__builtin_clzl(0)]) RUBY_CHECK_BUILTIN_FUNC(__builtin_clzll, [__builtin_clzll(0)]) RUBY_CHECK_BUILTIN_FUNC(__builtin_ctz, [__builtin_ctz(0)]) RUBY_CHECK_BUILTIN_FUNC(__builtin_ctzll, [__builtin_ctzll(0)]) +RUBY_CHECK_BUILTIN_FUNC(__builtin_constant_p, [__builtin_constant_p(0)]) RUBY_CHECK_BUILTIN_FUNC(__builtin_choose_expr, [ [int x[__extension__(__builtin_choose_expr(1, 1, -1))]]; [int y[__extension__(__builtin_choose_expr(0, -1, 1))]]; diff --git a/eval_error.c b/eval_error.c index c3e7c25e67..d18658bb14 100644 --- a/eval_error.c +++ b/eval_error.c @@ -3,7 +3,7 @@ * included by eval.c */ -#if defined(__GNUC__) && !defined(__PCC__) +#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P #define warn_print(x) __extension__ ( \ { \ (__builtin_constant_p(x)) ? \ diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h index 4e10b77f7a..371258c328 100644 --- a/include/ruby/encoding.h +++ b/include/ruby/encoding.h @@ -145,7 +145,7 @@ VALUE rb_str_export_to_enc(VALUE, rb_encoding *); VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to); VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts); -#if defined(__GNUC__) && !defined(__PCC__) +#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P #define rb_enc_str_new(str, len, enc) __extension__ ( \ { \ (__builtin_constant_p(str) && __builtin_constant_p(len)) ? \ diff --git a/include/ruby/intern.h b/include/ruby/intern.h index a33f7cc407..67e51a9610 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -790,7 +790,7 @@ VALUE rb_str_scrub(VALUE, VALUE); /* symbol.c */ VALUE rb_sym_all_symbols(void); -#if defined(__GNUC__) && !defined(__PCC__) +#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P #define rb_str_new(str, len) __extension__ ( \ { \ (__builtin_constant_p(str) && __builtin_constant_p(len)) ? \ diff --git a/internal.h b/internal.h index d4565ee437..001a385a69 100644 --- a/internal.h +++ b/internal.h @@ -1323,8 +1323,8 @@ VALUE rb_fstring_new(const char *ptr, long len); #define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str)) #define rb_fstring_literal(str) rb_fstring_lit(str) VALUE rb_fstring_cstr(const char *str); -#if defined(__GNUC__) && !defined(__PCC__) -#define rb_fstring_cstr(str) __extension__ ( \ +#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P +# define rb_fstring_cstr(str) __extension__ ( \ { \ (__builtin_constant_p(str)) ? \ rb_fstring_new((str), (long)strlen(str)) : \ @@ -1336,14 +1336,14 @@ VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc); #define rb_fstring_enc_lit(str, enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc)) #define rb_fstring_enc_literal(str, enc) rb_fstring_enc_lit(str, enc) VALUE rb_fstring_enc_cstr(const char *ptr, rb_encoding *enc); -#if defined(__GNUC__) && !defined(__PCC__) -#define rb_fstring_enc_cstr(str, enc) __extension__ ( \ +# ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P +# define rb_fstring_enc_cstr(str, enc) __extension__ ( \ { \ (__builtin_constant_p(str)) ? \ rb_fstring_enc_new((str), (long)strlen(str), (enc)) : \ rb_fstring_enc_cstr(str, enc); \ }) -#endif +# endif #endif int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p); int rb_str_symname_p(VALUE); |