aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-23 02:44:54 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-23 02:44:54 +0000
commit66137dc82ed7d173cba2db7ed68658e121806318 (patch)
tree8408e74babee904a460c7aa8d25103fe93344923
parent489b9be6f6720b92cb40482c34c20bb38f5e2c9d (diff)
downloadruby-66137dc82ed7d173cba2db7ed68658e121806318.tar.gz
remove SIGN_EXTEND_CHAR macro
* marshal.c (r_long): cast to `signed char`, which is used already, instead of SIGN_EXTEND_CHAR. * parse.y: SIGN_EXTEND_CHAR is no longer used. [Fix GH-1302] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--marshal.c10
-rw-r--r--parse.y12
3 files changed, 8 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 060e60c5e2..4bac253cd0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Mar 23 11:44:53 2016 cremno <cremno@mail.ru>
+
+ * marshal.c (r_long): cast to `signed char`, which is used
+ already, instead of SIGN_EXTEND_CHAR.
+
+ * parse.y: SIGN_EXTEND_CHAR is no longer used. [Fix GH-1302]
+
Wed Mar 23 11:38:47 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL_PARAM):
diff --git a/marshal.c b/marshal.c
index 054b2aad0c..3560cb5d80 100644
--- a/marshal.c
+++ b/marshal.c
@@ -1174,19 +1174,11 @@ long_toobig(int size)
STRINGIZE(SIZEOF_LONG)", given %d)", size);
}
-#undef SIGN_EXTEND_CHAR
-#if __STDC__
-# define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-#else /* not __STDC__ */
-/* As in Harbison and Steele. */
-# define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
-#endif
-
static long
r_long(struct load_arg *arg)
{
register long x;
- int c = SIGN_EXTEND_CHAR(r_byte(arg));
+ int c = (signed char)r_byte(arg);
long i;
if (c == 0) return 0;
diff --git a/parse.y b/parse.y
index cb2ae70f31..3f2a4d2c30 100644
--- a/parse.y
+++ b/parse.y
@@ -5327,18 +5327,6 @@ ripper_dispatch_delayed_token(struct parser_params *parser, int t)
#include "ruby/regex.h"
#include "ruby/util.h"
-/* We remove any previous definition of `SIGN_EXTEND_CHAR',
- since ours (we hope) works properly with all combinations of
- machines, compilers, `char' and `unsigned char' argument types.
- (Per Bothner suggested the basic approach.) */
-#undef SIGN_EXTEND_CHAR
-#if __STDC__
-# define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-#else /* not __STDC__ */
-/* As in Harbison and Steele. */
-# define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
-#endif
-
#define parser_encoding_name() (current_enc->name)
#define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc)
#define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc)