re PR lto/81487 ([mingw32] ld.exe: error: asprintf failed)

lto-plugin/
	PR lto/81487
	* lto-plugin.c (claim_file_handler): Use xasprintf instead of
	asprintf.
	[hi!=0]: Swap hi and lo arguments supplied to xasprintf.

From-SVN: r250428
This commit is contained in:
Georg-Johann Lay 2017-07-21 15:58:14 +00:00 committed by Georg-Johann Lay
parent d629ab4496
commit 5c2dee6fc9
2 changed files with 13 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2017-07-21 Georg-Johann Lay <avr@gjlay.de>
PR lto/81487
* lto-plugin.c (claim_file_handler): Use xasprintf instead of
asprintf.
[hi!=0]: Swap hi and lo arguments supplied to xasprintf.
2017-01-17 Jakub Jelinek <jakub@redhat.com>
PR other/79046

View File

@ -975,17 +975,16 @@ claim_file_handler (const struct ld_plugin_input_file *file, int *claimed)
if (file->offset != 0)
{
char *objname;
/* We pass the offset of the actual file, not the archive header.
Can't use PRIx64, because that's C99, so we have to print the
64-bit hex int as two 32-bit ones. */
int lo, hi, t;
64-bit hex int as two 32-bit ones. Use xasprintf instead of
asprintf because asprintf doesn't work as expected on some older
mingw32 hosts. */
int lo, hi;
lo = file->offset & 0xffffffff;
hi = ((int64_t)file->offset >> 32) & 0xffffffff;
t = hi ? asprintf (&objname, "%s@0x%x%08x", file->name, lo, hi)
: asprintf (&objname, "%s@0x%x", file->name, lo);
check (t >= 0, LDPL_FATAL, "asprintf failed");
lto_file.name = objname;
lto_file.name = hi ? xasprintf ("%s@0x%x%08x", file->name, hi, lo)
: xasprintf ("%s@0x%x", file->name, lo);
}
else
{