intel: compiler: prevent integer overflow
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Mon, 8 May 2017 17:55:06 +0000 (18:55 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 9 May 2017 12:56:17 +0000 (13:56 +0100)
CID: 13994771399478 (Integer handling issues)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/intel/compiler/brw_eu_validate.c

index 63b798c771a9266adf5882c965ffe73d340aa7d6..a632242e0f8bb629a0df9ae1ff5f31e6a7894add 100644 (file)
@@ -621,7 +621,7 @@ general_restrictions_on_region_parameters(const struct gen_device_info *devinfo,
       /* VertStride must be used to cross GRF register boundaries. This rule
        * implies that elements within a 'Width' cannot cross GRF boundaries.
        */
-      const uint64_t mask = (1 << element_size) - 1;
+      const uint64_t mask = (1ULL << element_size) - 1;
       unsigned rowbase = subreg;
 
       for (int y = 0; y < exec_size / width; y++) {
@@ -674,7 +674,7 @@ align1_access_mask(uint64_t access_mask[static 32],
                    unsigned exec_size, unsigned element_size, unsigned subreg,
                    unsigned vstride, unsigned width, unsigned hstride)
 {
-   const uint64_t mask = (1 << element_size) - 1;
+   const uint64_t mask = (1ULL << element_size) - 1;
    unsigned rowbase = subreg;
    unsigned element = 0;