2) Fix %d,%x,%X to pull values off the vararg stack using (int) and (unsigned int) types to resolve compatibility issues with X64
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@408
6f19259b-4bc3-4df7-8a09-
765794883524
// Handle each argument type\r
//\r
switch (FormatCharacter) {\r
+ case 'p':\r
+ if (sizeof (VOID *) > 4) {\r
+ Flags |= LONG_TYPE;\r
+ }\r
case 'X':\r
Flags |= PREFIX_ZERO;\r
//\r
//\r
case 'd':\r
if ((Flags & LONG_TYPE) == 0) {\r
- Value = (VA_ARG (Marker, INTN));\r
+ Value = (VA_ARG (Marker, int));\r
} else {\r
Value = VA_ARG (Marker, INT64);\r
}\r
Radix = 16;\r
Comma = FALSE;\r
if ((Flags & LONG_TYPE) == 0 && Value < 0) {\r
- Value = (UINTN)Value;\r
+ Value = (unsigned int)Value;\r
}\r
}\r
//\r