[edk2] [Patch] BaseTools CommonLib: Fix printf %llx issue on UINT64

Liming Gao posted 1 patch 6 years, 11 months ago
Failed in applying to current master (apply log)
BaseTools/Source/C/Common/PcdValueCommon.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
[edk2] [Patch] BaseTools CommonLib: Fix printf %llx issue on UINT64
Posted by Liming Gao 6 years, 11 months ago
UINT64 is defined as the different type for the different ARCHs. To
let it work for all archs and compilers, add (unsigned long long) for
the input value together with %llx.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
---
 BaseTools/Source/C/Common/PcdValueCommon.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/BaseTools/Source/C/Common/PcdValueCommon.c b/BaseTools/Source/C/Common/PcdValueCommon.c
index 6ca0994744..42f76ddbbc 100644
--- a/BaseTools/Source/C/Common/PcdValueCommon.c
+++ b/BaseTools/Source/C/Common/PcdValueCommon.c
@@ -266,11 +266,7 @@ Returns:
     sprintf(PcdList[Index].Value, "0x%08x", (UINT32)(Value & 0xffffffff));
     break;
   case PcdDataTypeUint64:
-#ifdef __GNUC__
-    sprintf(PcdList[Index].Value, "0x%016lx", Value);
-#else
-    sprintf(PcdList[Index].Value, "0x%016llx", Value);
-#endif
+    sprintf(PcdList[Index].Value, "0x%016llx", (unsigned long long)Value);
     break;
   case PcdDataTypePointer:
     fprintf (stderr, "PCD %s.%s.%s.%s is structure.  Use PcdSetPtr()\n", SkuName, DefaultValueName, TokenSpaceGuidName, TokenName);
-- 
2.11.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] BaseTools CommonLib: Fix printf %llx issue on UINT64
Posted by Zhu, Yonghong 6 years, 11 months ago
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> 

Best Regards,
Zhu Yonghong

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Liming Gao
Sent: Wednesday, January 3, 2018 8:34 AM
To: edk2-devel@lists.01.org
Subject: [edk2] [Patch] BaseTools CommonLib: Fix printf %llx issue on UINT64

UINT64 is defined as the different type for the different ARCHs. To let it work for all archs and compilers, add (unsigned long long) for the input value together with %llx.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
---
 BaseTools/Source/C/Common/PcdValueCommon.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/BaseTools/Source/C/Common/PcdValueCommon.c b/BaseTools/Source/C/Common/PcdValueCommon.c
index 6ca0994744..42f76ddbbc 100644
--- a/BaseTools/Source/C/Common/PcdValueCommon.c
+++ b/BaseTools/Source/C/Common/PcdValueCommon.c
@@ -266,11 +266,7 @@ Returns:
     sprintf(PcdList[Index].Value, "0x%08x", (UINT32)(Value & 0xffffffff));
     break;
   case PcdDataTypeUint64:
-#ifdef __GNUC__
-    sprintf(PcdList[Index].Value, "0x%016lx", Value);
-#else
-    sprintf(PcdList[Index].Value, "0x%016llx", Value);
-#endif
+    sprintf(PcdList[Index].Value, "0x%016llx", (unsigned long 
+ long)Value);
     break;
   case PcdDataTypePointer:
     fprintf (stderr, "PCD %s.%s.%s.%s is structure.  Use PcdSetPtr()\n", SkuName, DefaultValueName, TokenSpaceGuidName, TokenName);
--
2.11.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel