Fix warn-unused-return message.
authorCary Coutant <ccoutant@gmail.com>
Sat, 24 Mar 2018 06:33:47 +0000 (23:33 -0700)
committerCary Coutant <ccoutant@gmail.com>
Sat, 24 Mar 2018 06:34:13 +0000 (23:34 -0700)
gold/
* plugin.cc (link_or_copy_file): Remove newlines from warning messages.
Add pedantic check for return value from ::write.

gold/ChangeLog
gold/plugin.cc

index f0f0d5c..7364a63 100644 (file)
@@ -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.
index b12a7a9..c921f7c 100644 (file)
@@ -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;