[libclc] 01/58: integer: Update integer limits to comply with spec

Andreas Boll aboll-guest at moszumanska.debian.org
Thu Oct 6 08:16:27 UTC 2016


This is an automated email from the git hooks/post-receive script.

aboll-guest pushed a commit to branch master
in repository libclc.

commit 4346c30bae8b1a64acba564f6775cb0bacd026e4
Author: Aaron Watry <awatry at gmail.com>
Date:   Tue Sep 15 03:56:21 2015 +0000

    integer: Update integer limits to comply with spec
    
    The values for the char/short/integer/long minimums were declared with
    their actual values, not the definitions from the CL spec (v1.1).  As
    a result, (-2147483648) was actually being treated as a long by the
    compiler, not an int, which caused issues when trying to add/subtract
    that value from a vector.
    
    Update the definitions to use the values declared by the spec, and also
    add explicit casts for the char/short/int minimums so that the compiler
    actually treats them as shorts/chars. Without those casts, they
    actually end up stored as integers, and the compiler may end up storing
    the INT_MIN as a long.
    
    The compiler can sign extend the values if it needs to convert the
    char->short, short->int, or int->long
    
    v2: Add explicit cast for INT_MIN and fix some type-o's and wrapping
        in the commit message.
    
    Reported-by: Moritz Pflanzer <moritz.pflanzer14 at imperial.ac.uk>
    CC: Moritz Pflanzer <moritz.pflanzer14 at imperial.ac.uk>
    Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
    Signed-off-by: Aaron Watry <awatry at gmail.com>
    
    git-svn-id: https://llvm.org/svn/llvm-project/libclc/trunk@247661 91177308-0d34-0410-b5e6-96231b3b80d8
---
 generic/include/clc/integer/definitions.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/generic/include/clc/integer/definitions.h b/generic/include/clc/integer/definitions.h
index a407974..89de232 100644
--- a/generic/include/clc/integer/definitions.h
+++ b/generic/include/clc/integer/definitions.h
@@ -1,14 +1,14 @@
 #define CHAR_BIT 8
 #define INT_MAX 2147483647
-#define INT_MIN -2147483648
+#define INT_MIN ((int)(-2147483647 - 1))
 #define LONG_MAX  0x7fffffffffffffffL
-#define LONG_MIN -0x8000000000000000L
+#define LONG_MIN (-0x7fffffffffffffffL - 1)
+#define CHAR_MAX SCHAR_MAX
+#define CHAR_MIN SCHAR_MIN
 #define SCHAR_MAX 127
-#define SCHAR_MIN -128
-#define CHAR_MAX 127
-#define CHAR_MIN -128
+#define SCHAR_MIN ((char)(-127 - 1))
 #define SHRT_MAX 32767
-#define SHRT_MIN -32768
+#define SHRT_MIN ((short)(-32767 - 1))
 #define UCHAR_MAX 255
 #define USHRT_MAX 65535
 #define UINT_MAX 0xffffffff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opencl/libclc.git



More information about the Pkg-opencl-commits mailing list