Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Apr 2013 05:53:43 +0000 (UTC)
From:      Tim Kientzle <kientzle@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r249223 - head/sys/boot/ficl
Message-ID:  <201304070553.r375rhkt026840@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kientzle
Date: Sun Apr  7 05:53:42 2013
New Revision: 249223
URL: http://svnweb.freebsd.org/changeset/base/249223

Log:
  The CELL fields can be various integer types depending on the platform
  (ARM uses 'int' and 'unsigned'; i386 uses 'long' and 'unsigned long'),
  so we need explicit casts to long and unsigned long here to ensure
  that the result matches the printf %ld and %lx specifiers.

Modified:
  head/sys/boot/ficl/tools.c

Modified: head/sys/boot/ficl/tools.c
==============================================================================
--- head/sys/boot/ficl/tools.c	Sun Apr  7 05:40:49 2013	(r249222)
+++ head/sys/boot/ficl/tools.c	Sun Apr  7 05:53:42 2013	(r249223)
@@ -216,10 +216,11 @@ static void seeColon(FICL_VM *pVM, CELL 
                 {
                     FICL_WORD *pLit = (FICL_WORD *)c.p;
                     sprintf(cp, "%.*s ( %#lx literal )", 
-                        pLit->nName, pLit->name, c.u);
+                        pLit->nName, pLit->name, (unsigned long)c.u);
                 }
                 else
-                    sprintf(cp, "literal %ld (%#lx)", c.i, c.u);
+                    sprintf(cp, "literal %ld (%#lx)",
+                        (long)c.i, (unsigned long)c.u);
                 break;
             case STRINGLIT:
                 {
@@ -281,7 +282,7 @@ static void seeColon(FICL_VM *pVM, CELL 
         }
         else /* probably not a word - punt and print value */
         {
-            sprintf(cp, "%ld ( %#lx )", pc->i, pc->u);
+            sprintf(cp, "%ld ( %#lx )", (long)pc->i, (unsigned long)pc->u);
         }
 
 		vmTextOut(pVM, pVM->pad, 1);
@@ -324,19 +325,22 @@ static void seeXT(FICL_VM *pVM)
         break;
 
     case VARIABLE:
-        sprintf(pVM->pad, "variable = %ld (%#lx)", pFW->param->i, pFW->param->u);
+        sprintf(pVM->pad, "variable = %ld (%#lx)",
+            (long)pFW->param->i, (unsigned long)pFW->param->u);
         vmTextOut(pVM, pVM->pad, 1);
         break;
 
 #if FICL_WANT_USER
     case USER:
-        sprintf(pVM->pad, "user variable %ld (%#lx)", pFW->param->i, pFW->param->u);
+        sprintf(pVM->pad, "user variable %ld (%#lx)",
+            (long)pFW->param->i, (unsigned long)pFW->param->u);
         vmTextOut(pVM, pVM->pad, 1);
         break;
 #endif
 
     case CONSTANT:
-        sprintf(pVM->pad, "constant = %ld (%#lx)", pFW->param->i, pFW->param->u);
+        sprintf(pVM->pad, "constant = %ld (%#lx)",
+            (long)pFW->param->i, (unsigned long)pFW->param->u);
         vmTextOut(pVM, pVM->pad, 1);
 
     default:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304070553.r375rhkt026840>