ruby-changes:28075
From: akr <ko1@a...>
Date: Fri, 5 Apr 2013 20:46:24 +0900 (JST)
Subject: [ruby-changes:28075] akr:r40127 (trunk): * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish
akr 2013-04-05 20:44:56 +0900 (Fri, 05 Apr 2013) New Revision: 40127 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=40127 Log: * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish availability of long long and availability of 64bit integer type. * pack.c: Use HAVE_TRUE_LONG_LONG to distinguish q! and Q! support. Modified files: trunk/ChangeLog trunk/include/ruby/defines.h trunk/pack.c Index: include/ruby/defines.h =================================================================== --- include/ruby/defines.h (revision 40126) +++ include/ruby/defines.h (revision 40127) @@ -114,6 +114,10 @@ void xfree(void*); https://github.com/ruby/ruby/blob/trunk/include/ruby/defines.h#L114 #define STRINGIZE0(expr) #expr #endif +#ifdef HAVE_LONG_LONG 1 +# define HAVE_TRUE_LONG_LONG 1 +#endif + #if SIZEOF_LONG_LONG > 0 # define LONG_LONG long long #elif SIZEOF___INT64 > 0 Index: ChangeLog =================================================================== --- ChangeLog (revision 40126) +++ ChangeLog (revision 40127) @@ -1,6 +1,13 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Fri Apr 5 20:41:49 2013 Tanaka Akira <akr@f...> + + * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish + availability of long long and availability of 64bit integer type. + + * pack.c: Use HAVE_TRUE_LONG_LONG to distinguish q! and Q! support. + Fri Apr 5 20:19:42 2013 Tanaka Akira <akr@f...> - * addr2line.c: include ruby/missing.h to fix compile error on Debian. + * addr2line.c: Include ruby/missing.h to fix compile error on Debian. Fri Apr 5 19:39:52 2013 Nobuyoshi Nakada <nobu@r...> Index: pack.c =================================================================== --- pack.c (revision 40126) +++ pack.c (revision 40127) @@ -22,21 +22,21 @@ https://github.com/ruby/ruby/blob/trunk/pack.c#L22 (__GNUC__ == (major) && __GNUC_MINOR__ == (minor) && __GNUC_PATCHLEVEL__ >= (patchlevel)))) /* - * It is intentional that the condition for natstr is HAVE_LONG_LONG - * instead of LONG_LONG. + * It is intentional that the condition for natstr is HAVE_TRUE_LONG_LONG + * instead of HAVE_LONG_LONG or LONG_LONG. * This means q! and Q! means always the standard long long type and * causes ArgumentError for platforms which has no long long type, * even if the platform has an implementation specific 64bit type. * This behavior is consistent with the document of pack/unpack. */ -#ifdef HAVE_LONG_LONG +#ifdef HAVE_TRUE_LONG_LONG static const char natstr[] = "sSiIlLqQ"; #else static const char natstr[] = "sSiIlL"; #endif static const char endstr[] = "sSiIlLqQ"; -#if SIZEOF_SHORT != 2 || SIZEOF_LONG != 4 || (defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG != 8) +#if SIZEOF_SHORT != 2 || SIZEOF_LONG != 4 || (defined(HAVE_TRUE_LONG_LONG) && SIZEOF_LONG_LONG != 8) # define NATINT_PACK #endif @@ -68,8 +68,8 @@ static const char endstr[] = "sSiIlLqQ"; https://github.com/ruby/ruby/blob/trunk/pack.c#L68 # define NATINT_LEN(type,len) ((int)sizeof(type)) #endif -#ifdef HAVE_LONG_LONG -# define NATINT_LEN_Q NATINT_LEN(LONG_LONG, 8) +#ifdef HAVE_TRUE_LONG_LONG +# define NATINT_LEN_Q NATINT_LEN(long long, 8) #else # define NATINT_LEN_Q 8 #endif -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/