Re: [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi,

On 10/12/15 14:58, Mika Kuoppala wrote:
We get build error as we try to cast from ptr to integer
of different size on 32 bit platforms. Use unsigned long
as the cast, it will work with both 32 and 64 bit
systems.

Cc: Vinay Belgaumkar <vinay.belgaumkar@xxxxxxxxx>
Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
---
  tests/gem_softpin.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/gem_softpin.c b/tests/gem_softpin.c
index 7bee16b..0919716 100644
--- a/tests/gem_softpin.c
+++ b/tests/gem_softpin.c
@@ -155,7 +155,7 @@ static uint32_t init_userptr(int fd, i915_gem_userptr *userptr, void *ptr,

  	memset((void*)userptr, 0, sizeof(i915_gem_userptr));

-	userptr->user_ptr = (uint64_t)ptr; /* Need the cast to overcome compiler warning */
+	userptr->user_ptr = (unsigned long)ptr; /* Need the cast to overcome compiler warning */
  	userptr->user_size = size;
  	userptr->flags = 0; /* use synchronized operation */

@@ -270,7 +270,7 @@ static void setup_execbuffer(struct drm_i915_gem_execbuffer2 *execbuf,
  			     struct drm_i915_gem_exec_object2 *exec_object,
  			     int ring, int buffer_count, int batch_length)
  {
-	execbuf->buffers_ptr = (uint64_t)exec_object;
+	execbuf->buffers_ptr = (unsigned long)exec_object;
  	execbuf->buffer_count = buffer_count;
  	execbuf->batch_start_offset = 0;
  	execbuf->batch_len = batch_length;
@@ -417,7 +417,7 @@ static void gem_pin_bo_test(void)
  		       EXEC_OBJECT_PINNED, pinning_offset);
  	setup_exec_obj(&exec_object2[1], batch_buf_handle, 0, 0);
  	exec_object2[1].relocation_count = 1;
-	exec_object2[1].relocs_ptr = (uint64_t)reloc;
+	exec_object2[1].relocs_ptr = (unsigned long)reloc;

  	ring = I915_EXEC_RENDER;



I had to try it to believe it and indeed gcc complains with "warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]", which I don't really understand since cast is to a wider or equally wide data type.

Vinay had uintptr_t there originally which does not suffer from this warning so this one is my fault. I don't get the gcc logic but whatever.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux