[coreboot-gerrit] Patch set updated for coreboot: 830d213 inteltool: Cast to `intptr_t` instead of `uint64_t`

Paul Menzel (paulepanter@users.sourceforge.net) gerrit at coreboot.org
Wed Apr 3 10:52:34 CEST 2013


Paul Menzel (paulepanter at users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3002

-gerrit

commit 830d213b3da006c488a83e1fcae36e7c0b087ed0
Author: Paul Menzel <paulepanter at users.sourceforge.net>
Date:   Mon Apr 1 18:26:58 2013 +0200

    inteltool: Cast to `intptr_t` instead of `uint64_t`
    
    When building inteltool under x86-32, the following warnings are
    shown.
    
        $ gcc --version
        gcc-4.7.real (Debian 4.7.2-15) 4.7.2
        Copyright (C) 2012 Free Software Foundation, Inc.
        This is free software; see the source for copying conditions.  There is NO
        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
        $ make
        […]
        amb.c: In function ‘amb_read_config32’:
        amb.c:31:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
        amb.c:31:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
        amb.c: In function ‘amb_read_config16’:
        amb.c:45:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
        amb.c:45:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
        amb.c: In function ‘amb_read_config8’:
        amb.c:60:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
        amb.c:60:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
        […]
    
    Nico Huber commented the following [1].
    
        I don't see those warnings because I build for x86-64. I guess
        they could be fixed by casting to `ptrdiff_t` (from stddef.h)
        instead of `uint64_t`.
    
    And indeed, using `ptrdiff_t` fixes the warning. But as Stefan
    Reinauer commented in [2], `intptr_t` is more appropriate as this
    is just a pointer and no pointer difference.
    
    So `intptr_t` is taken, which fixes these issues warned about too.
    
    These warnings were introduced in commit »inteltool: Add support for
    dumping AMB registers« (4b7b320f) [3].
    
    [1] http://review.coreboot.org/#/c/2996/1//COMMIT_MSG
    [2] http://review.coreboot.org/#/c/3002/1/util/inteltool/amb.c
    [3] http://review.coreboot.org/525
    
    Change-Id: I2ea1a31dc1e3db129e767d6a9e0433fd75a77d0f
    Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
---
 util/inteltool/amb.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/util/inteltool/amb.c b/util/inteltool/amb.c
index a3ee01d..a1761ee 100644
--- a/util/inteltool/amb.c
+++ b/util/inteltool/amb.c
@@ -17,7 +17,7 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-
+#include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include "inteltool.h"
@@ -28,7 +28,7 @@
 
 static uint32_t amb_read_config32(volatile void *base, int fn, int reg)
 {
-	return *(uint32_t *)(AMB_ADDR((uint64_t)base, fn, reg));
+	return *(uint32_t *)(AMB_ADDR((intptr_t)base, fn, reg));
 }
 
 static void amb_printreg32(volatile void *base, int fn, int reg,
@@ -42,7 +42,7 @@ static void amb_printreg32(volatile void *base, int fn, int reg,
 
 static uint16_t amb_read_config16(volatile void *base, int fn, int reg)
 {
-	return *(uint16_t *)(AMB_ADDR((uint64_t)base, fn, reg));
+	return *(uint16_t *)(AMB_ADDR((intptr_t)base, fn, reg));
 }
 
 static void amb_printreg16(volatile void *base, int fn, int reg,
@@ -57,7 +57,7 @@ static void amb_printreg16(volatile void *base, int fn, int reg,
 
 static uint8_t amb_read_config8(volatile void *base, int fn, int reg)
 {
-	return *(uint8_t *)(AMB_ADDR((uint64_t)base, fn, reg));
+	return *(uint8_t *)(AMB_ADDR((intptr_t)base, fn, reg));
 }
 
 static void amb_printreg8(volatile void *base, int fn, int reg,



More information about the coreboot-gerrit mailing list