Another _doprnt fix for %L handling
* bfd.c (_doprnt): Replace "L" with "ll" when printing bfd_vma as long long. Move code replacing "ll" with "I64", and simplify.
This commit is contained in:
parent
9691e722c6
commit
1cf9552bf1
|
@ -1,3 +1,8 @@
|
||||||
|
2017-07-07 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* bfd.c (_doprnt): Replace "L" with "ll" when printing bfd_vma
|
||||||
|
as long long. Move code replacing "ll" with "I64", and simplify.
|
||||||
|
|
||||||
2017-07-06 H.J. Lu <hongjiu.lu@intel.com>
|
2017-07-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* bfd.c (_doprnt): Convert 'L' to 'l' when setting wide_width
|
* bfd.c (_doprnt): Convert 'L' to 'l' when setting wide_width
|
||||||
|
|
27
bfd/bfd.c
27
bfd/bfd.c
|
@ -725,11 +725,17 @@ _doprnt (FILE *stream, const char *format, va_list ap)
|
||||||
{
|
{
|
||||||
/* L modifier for bfd_vma or bfd_size_type may be
|
/* L modifier for bfd_vma or bfd_size_type may be
|
||||||
either long long or long. */
|
either long long or long. */
|
||||||
if ((BFD_ARCH_SIZE < 64 || BFD_HOST_64BIT_LONG)
|
if (sptr[-2] == 'L')
|
||||||
&& sptr[-2] == 'L')
|
|
||||||
{
|
{
|
||||||
wide_width = 1;
|
|
||||||
sptr[-2] = 'l';
|
sptr[-2] = 'l';
|
||||||
|
if (BFD_ARCH_SIZE < 64 || BFD_HOST_64BIT_LONG)
|
||||||
|
wide_width = 1;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sptr[-1] = 'l';
|
||||||
|
*sptr++ = ptr[-1];
|
||||||
|
*sptr = '\0';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (wide_width)
|
switch (wide_width)
|
||||||
|
@ -742,17 +748,14 @@ _doprnt (FILE *stream, const char *format, va_list ap)
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
default:
|
default:
|
||||||
#if defined (__GNUC__) || defined (HAVE_LONG_LONG)
|
#if defined (__MSVCRT__)
|
||||||
# if defined (__MSVCRT__)
|
sptr[-3] = 'I';
|
||||||
sptr--;
|
sptr[-2] = '6';
|
||||||
while (sptr[-1] == 'L' || sptr[-1] == 'l')
|
sptr[-1] = '4';
|
||||||
sptr--;
|
|
||||||
*sptr++ = 'I';
|
|
||||||
*sptr++ = '6';
|
|
||||||
*sptr++ = '4';
|
|
||||||
*sptr++ = ptr[-1];
|
*sptr++ = ptr[-1];
|
||||||
*sptr = '\0';
|
*sptr = '\0';
|
||||||
# endif
|
#endif
|
||||||
|
#if defined (__GNUC__) || defined (HAVE_LONG_LONG)
|
||||||
PRINT_TYPE (long long);
|
PRINT_TYPE (long long);
|
||||||
#else
|
#else
|
||||||
/* Fake it and hope for the best. */
|
/* Fake it and hope for the best. */
|
||||||
|
|
Loading…
Reference in New Issue