From 8da9a904f41bb78fca5568fb94004120682b1653 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Fri, 23 Mar 2018 23:33:47 -0700 Subject: [PATCH] Fix warn-unused-return message. gold/ * plugin.cc (link_or_copy_file): Remove newlines from warning messages. Add pedantic check for return value from ::write. --- gold/ChangeLog | 5 +++++ gold/plugin.cc | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index f0f0d5c68da..7364a63bd7d 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2018-03-23 Cary Coutant + + * plugin.cc (link_or_copy_file): Remove newlines from warning messages. + Add pedantic check for return value from ::write. + 2018-03-23 Cary Coutant * debug.h (DEBUG_PLUGIN): New constant. diff --git a/gold/plugin.cc b/gold/plugin.cc index b12a7a9fae7..c921f7ca3d2 100644 --- a/gold/plugin.cc +++ b/gold/plugin.cc @@ -568,19 +568,26 @@ link_or_copy_file(const char* inname, const char* outname) int in = ::open(inname, O_RDONLY); if (in < 0) { - gold_warning(_("%s: can't open (%s)\n"), inname, strerror(errno)); + gold_warning(_("%s: can't open (%s)"), inname, strerror(errno)); return false; } int out = ::open(outname, O_CREAT | O_TRUNC | O_WRONLY, 0600); if (out < 0) { - gold_warning(_("%s: can't create (%s)\n"), outname, strerror(errno)); + gold_warning(_("%s: can't create (%s)"), outname, strerror(errno)); ::close(in); return false; } ssize_t len; while ((len = ::read(in, buf, sizeof(buf))) > 0) - static_cast(::write(out, buf, len)); + { + if (::write(out, buf, len) != len) + { + gold_warning(_("%s: write error while making copy of file (%s)"), + inname, strerror(errno)); + break; + } + } ::close(in); ::close(out); return true; -- 2.30.2