Add mingw I64 support for printing long and long long values

This commit is contained in:
Nick Clifton
2008-01-25 16:18:41 +00:00
parent 53d25da64b
commit 6e3d6dc1ed
11 changed files with 179 additions and 45 deletions

View File

@@ -502,12 +502,21 @@ print_vma (bfd_vma vma, char *buf, bfd_boolean unsignedp, bfd_boolean hexp)
#if BFD_HOST_64BIT_LONG_LONG
else if (sizeof (vma) <= sizeof (unsigned long long))
{
#ifndef __MSVCRT__
if (hexp)
sprintf (buf, "0x%llx", (unsigned long long) vma);
else if (unsignedp)
sprintf (buf, "%llu", (unsigned long long) vma);
else
sprintf (buf, "%lld", (long long) vma);
#else
if (hexp)
sprintf (buf, "0x%I64x", (unsigned long long) vma);
else if (unsignedp)
sprintf (buf, "%I64u", (unsigned long long) vma);
else
sprintf (buf, "%I64d", (long long) vma);
#endif
}
#endif
else
@@ -1942,8 +1951,6 @@ tg_start_compilation_unit (void * p, const char *filename ATTRIBUTE_UNUSED)
{
struct pr_handle *info = (struct pr_handle *) p;
fprintf (stderr, "New compilation unit: %s\n", filename);
free (info->filename);
/* Should it be relative? best way to do it here?. */
info->filename = strdup (filename);