aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@gmail.com>2018-03-23 23:33:47 -0700
committerCary Coutant <ccoutant@gmail.com>2018-03-23 23:34:13 -0700
commit8da9a904f41bb78fca5568fb94004120682b1653 (patch)
tree497425f9979ff7501055abafd42b20bc2dbe5fd1 /gold
parent3215deaaa6abbb7663fa3ec13a03ad74fd58b705 (diff)
downloadbinutils-8da9a904f41bb78fca5568fb94004120682b1653.zip
binutils-8da9a904f41bb78fca5568fb94004120682b1653.tar.gz
binutils-8da9a904f41bb78fca5568fb94004120682b1653.tar.bz2
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.
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/plugin.cc13
2 files changed, 15 insertions, 3 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index f0f0d5c..7364a63 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,5 +1,10 @@
2018-03-23 Cary Coutant <ccoutant@gmail.com>
+ * plugin.cc (link_or_copy_file): Remove newlines from warning messages.
+ Add pedantic check for return value from ::write.
+
+2018-03-23 Cary Coutant <ccoutant@gmail.com>
+
* debug.h (DEBUG_PLUGIN): New constant.
(DEBUG_ALL): Add DEBUG_PLUGIN.
(debug_string_to_enum): Likewise.
diff --git a/gold/plugin.cc b/gold/plugin.cc
index b12a7a9..c921f7c 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<void>(::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;