From: Ian Lance Taylor Date: Fri, 9 May 2008 14:13:06 +0000 (+0000) Subject: PR 6493 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=55ba0940d96a0da92a3ab3234a5fb7ae0b445b5f;p=binutils-gdb.git PR 6493 * gold.cc (gold_nomem): Use return value of write. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 9a95d327fdd..7ded23176d0 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2008-05-09 Ian Lance Taylor + + PR 6493 + * gold.cc (gold_nomem): Use return value of write. + 2008-05-08 Ian Lance Taylor * symtab.c (Symbol::init_base_output_data): Add version diff --git a/gold/gold.cc b/gold/gold.cc index 396a5a940f3..267c4d11682 100644 --- a/gold/gold.cc +++ b/gold/gold.cc @@ -60,9 +60,18 @@ gold_nomem() // We are out of memory, so try hard to print a reasonable message. // Note that we don't try to translate this message, since the // translation process itself will require memory. - write(2, program_name, strlen(program_name)); - const char* const s = ": out of memory\n"; - write(2, s, strlen(s)); + + // LEN only exists to avoid a pointless warning when write is + // declared with warn_use_result, as when compiling with + // -D_USE_FORTIFY on GNU/Linux. Casting to void does not appear to + // work, at least not with gcc 4.3.0. + + ssize_t len = write(2, program_name, strlen(program_name)); + if (len >= 0) + { + const char* const s = ": out of memory\n"; + len = write(2, s, strlen(s)); + } gold_exit(false); }