From 2adf28159308bd09fdaa92c019ce7ed15b7c94e4 Mon Sep 17 00:00:00 2001 From: ngoto Date: Sat, 30 Dec 2017 16:38:22 +0000 Subject: [PATCH] bit fields treating negative values should be declared as signed int * internal.h (struct vm_ifunc_argc): Bit fields are unsigned by default. For storing nagative values to bit fields, they must be declated as signed int. Fix multiple test failure observed by 32-bit binaries compiled with Oracle Developer Studio (Solaris Studio) 12.x on Solaris 10 on sparc architecture. [Bug #14260] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal.h b/internal.h index 5fe888cd04..b2ef2d5258 100644 --- a/internal.h +++ b/internal.h @@ -914,8 +914,8 @@ struct vm_throw_data { struct vm_ifunc_argc { #if SIZEOF_INT * 2 > SIZEOF_VALUE - int min: (SIZEOF_VALUE * CHAR_BIT) / 2; - int max: (SIZEOF_VALUE * CHAR_BIT) / 2; + signed int min: (SIZEOF_VALUE * CHAR_BIT) / 2; + signed int max: (SIZEOF_VALUE * CHAR_BIT) / 2; #else int min, max; #endif