mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 05:44:15 +08:00
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:
parent
d629ab4496
commit
5c2dee6fc9
@ -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
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user