[llvm] 6a12875 - [SystemZ][z/OS] Fix return values in AutoConversion functions

Abhina Sreeskantharajan via llvm-commits llvm-commits at lists.llvm.org
Wed May 5 06:43:20 PDT 2021


Author: Abhina Sreeskantharajan
Date: 2021-05-05T09:43:14-04:00
New Revision: 6a12875046fd8c3e9f67482803a9f0f7b39dcfa6

URL: https://github.com/llvm/llvm-project/commit/6a12875046fd8c3e9f67482803a9f0f7b39dcfa6
DIFF: https://github.com/llvm/llvm-project/commit/6a12875046fd8c3e9f67482803a9f0f7b39dcfa6.diff

LOG: [SystemZ][z/OS] Fix return values in AutoConversion functions

My previous patch https://reviews.llvm.org/rG1527a5e4b4834e65678f9c30f786a2f4c17932bf incorrectly set int return values instead of std::error_code. This patch correctly returns and std::error_code value.

Reviewed By: fanbo-meng, Jonathan.Crowther

Differential Revision: https://reviews.llvm.org/D101904

Added: 
    

Modified: 
    llvm/lib/Support/AutoConvert.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Support/AutoConvert.cpp b/llvm/lib/Support/AutoConvert.cpp
index e35b1c83d3fce..4fb7e242c3480 100644
--- a/llvm/lib/Support/AutoConvert.cpp
+++ b/llvm/lib/Support/AutoConvert.cpp
@@ -23,7 +23,9 @@ std::error_code llvm::disableAutoConversion(int FD) {
       0,                // pccsid
       (short)FT_BINARY, // fccsid
   };
-  return fcntl(FD, F_CONTROL_CVT, &Convert);
+  if (fcntl(FD, F_CONTROL_CVT, &Convert) == -1)
+    return std::error_code(errno, std::generic_category());
+  return std::error_code();
 }
 
 std::error_code llvm::enableAutoConversion(int FD) {
@@ -34,7 +36,7 @@ std::error_code llvm::enableAutoConversion(int FD) {
   };
 
   if (fcntl(FD, F_CONTROL_CVT, &Query) == -1)
-    return -1;
+    return std::error_code(errno, std::generic_category());
 
   Query.cvtcmd = SETCVTALL;
   Query.pccsid =
@@ -43,7 +45,9 @@ std::error_code llvm::enableAutoConversion(int FD) {
           : CCSID_UTF_8;
   // Assume untagged files to be IBM-1047 encoded.
   Query.fccsid = (Query.fccsid == FT_UNTAGGED) ? CCSID_IBM_1047 : Query.fccsid;
-  return fcntl(FD, F_CONTROL_CVT, &Query);
+  if (fcntl(FD, F_CONTROL_CVT, &Query) == -1)
+    return std::error_code(errno, std::generic_category());
+  return std::error_code();
 }
 
 std::error_code llvm::setFileTag(int FD, int CCSID, bool Text) {
@@ -55,7 +59,9 @@ std::error_code llvm::setFileTag(int FD, int CCSID, bool Text) {
   Tag.ft_deferred = 0;
   Tag.ft_rsvflags = 0;
 
-  return fcntl(FD, F_SETTAG, &Tag);
+  if (fcntl(FD, F_SETTAG, &Tag) == -1)
+    return std::error_code(errno, std::generic_category());
+  return std::error_code();
 }
 
 #endif // __MVS__


        


More information about the llvm-commits mailing list