Repository: orc
Updated Branches:
  refs/heads/master da9b62f3e -> 3c30fe85b


ORC-47. Fix MacOS compilation warnings. (omalley reviewed by asandryh)

This fixes #21


Project: http://git-wip-us.apache.org/repos/asf/orc/repo
Commit: http://git-wip-us.apache.org/repos/asf/orc/commit/5f1cc8b0
Tree: http://git-wip-us.apache.org/repos/asf/orc/tree/5f1cc8b0
Diff: http://git-wip-us.apache.org/repos/asf/orc/diff/5f1cc8b0

Branch: refs/heads/master
Commit: 5f1cc8b0faab1ea272403d2f42953b6d2e80d68b
Parents: da9b62f
Author: Owen O'Malley <[email protected]>
Authored: Thu Apr 7 13:39:14 2016 -0700
Committer: Owen O'Malley <[email protected]>
Committed: Fri Apr 8 09:15:45 2016 -0700

----------------------------------------------------------------------
 c++/src/Adaptor.hh.in        | 15 +++++++++++++++
 c++/src/CMakeLists.txt       | 18 ++++++++++++++++++
 c++/src/ColumnReader.cc      |  2 +-
 c++/src/Compression.cc       |  3 ++-
 c++/src/Reader.cc            |  4 ++--
 c++/test/TestColumnReader.cc | 13 ++++++++-----
 6 files changed, 46 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/orc/blob/5f1cc8b0/c++/src/Adaptor.hh.in
----------------------------------------------------------------------
diff --git a/c++/src/Adaptor.hh.in b/c++/src/Adaptor.hh.in
index 5b3a677..1411e1a 100644
--- a/c++/src/Adaptor.hh.in
+++ b/c++/src/Adaptor.hh.in
@@ -25,6 +25,8 @@
 #cmakedefine HAS_DIAGNOSTIC_PUSH
 #cmakedefine HAS_PRE_1970
 #cmakedefine HAS_POST_2038
+#cmakedefine HAS_STD_ISNAN
+#cmakedefine NEEDS_REDUNDANT_MOVE
 
 #include "orc/orc-config.hh"
 #include <string>
@@ -89,4 +91,17 @@
 
 #define GTEST_LANG_CXX11 0
 
+#ifdef NEEDS_REDUNDANT_MOVE
+  #define REDUNDANT_MOVE(XXX) std::move(XXX)
+#else
+  #define REDUNDANT_MOVE(XXX) XXX
+#endif
+
+#ifndef HAS_STD_ISNAN
+  #include <math.h>
+  #define std::isnan(XXX) isnan(XXX)
+#else
+  #include <cmath>
+#endif
+
 #endif /* ADAPTER_HH */

http://git-wip-us.apache.org/repos/asf/orc/blob/5f1cc8b0/c++/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
index b7b5260..d2c2b63 100644
--- a/c++/src/CMakeLists.txt
+++ b/c++/src/CMakeLists.txt
@@ -58,6 +58,24 @@ CHECK_CXX_SOURCE_COMPILES("
   HAS_DIAGNOSTIC_PUSH
 )
 
+CHECK_CXX_SOURCE_COMPILES("
+    #include<cmath>
+    int main(int, char *[]) {
+      return std::isnan(1.0f);
+    }"
+  HAS_STD_ISNAN
+)
+
+CHECK_CXX_SOURCE_COMPILES("
+    #include<string>
+    std::string func() {
+      std::string var = \"test\";
+      return std::move(var);
+    }
+    int main(int, char *[]) {}"
+  NEEDS_REDUNDANT_MOVE
+)
+
 INCLUDE(CheckCXXSourceRuns)
 
 CHECK_CXX_SOURCE_RUNS("

http://git-wip-us.apache.org/repos/asf/orc/blob/5f1cc8b0/c++/src/ColumnReader.cc
----------------------------------------------------------------------
diff --git a/c++/src/ColumnReader.cc b/c++/src/ColumnReader.cc
index ae4d9b6..887c2b4 100644
--- a/c++/src/ColumnReader.cc
+++ b/c++/src/ColumnReader.cc
@@ -380,7 +380,7 @@ namespace orc {
         bits |= readByte() << (i*8);
       }
       float *result = reinterpret_cast<float*>(&bits);
-      return *result;
+      return static_cast<double>(*result);
     }
   };
 

http://git-wip-us.apache.org/repos/asf/orc/blob/5f1cc8b0/c++/src/Compression.cc
----------------------------------------------------------------------
diff --git a/c++/src/Compression.cc b/c++/src/Compression.cc
index a1b05dd..9bf8aaa 100644
--- a/c++/src/Compression.cc
+++ b/c++/src/Compression.cc
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+#include "Adaptor.hh"
 #include "Compression.hh"
 #include "Exceptions.hh"
 
@@ -732,7 +733,7 @@ DIAGNOSTIC_POP
                         MemoryPool& pool) {
     switch (static_cast<int64_t>(kind)) {
     case CompressionKind_NONE:
-      return std::move(input);
+      return REDUNDANT_MOVE(input);
     case CompressionKind_ZLIB:
       return std::unique_ptr<SeekableInputStream>
         (new ZlibDecompressionStream(std::move(input), blockSize, pool));

http://git-wip-us.apache.org/repos/asf/orc/blob/5f1cc8b0/c++/src/Reader.cc
----------------------------------------------------------------------
diff --git a/c++/src/Reader.cc b/c++/src/Reader.cc
index b41d470..aa72974 100644
--- a/c++/src/Reader.cc
+++ b/c++/src/Reader.cc
@@ -1900,7 +1900,7 @@ namespace orc {
       throw ParseError("Failed to parse the postscript from " +
                        stream->getName());
     }
-    return std::move(postscript);
+    return REDUNDANT_MOVE(postscript);
   }
 
   /**
@@ -1932,7 +1932,7 @@ namespace orc {
       throw ParseError("Failed to parse the footer from " +
                        stream->getName());
     }
-    return std::move(footer);
+    return REDUNDANT_MOVE(footer);
   }
 
   std::unique_ptr<Reader> createReader(std::unique_ptr<InputStream> stream,

http://git-wip-us.apache.org/repos/asf/orc/blob/5f1cc8b0/c++/test/TestColumnReader.cc
----------------------------------------------------------------------
diff --git a/c++/test/TestColumnReader.cc b/c++/test/TestColumnReader.cc
index 075a069..f5e30e7 100644
--- a/c++/test/TestColumnReader.cc
+++ b/c++/test/TestColumnReader.cc
@@ -2380,10 +2380,11 @@ TEST(TestColumnReader, testFloatWithNulls) {
       EXPECT_EQ(0, doubleBatch->notNull[i]);
     } else if (i == 7) {
       EXPECT_EQ(1, doubleBatch->notNull[i]);
-      EXPECT_EQ(true, isnan(doubleBatch->data[i]));
+      EXPECT_EQ(true, std::isnan(doubleBatch->data[i]));
     } else {
       EXPECT_EQ(1, doubleBatch->notNull[i]);
-      EXPECT_DOUBLE_EQ(test_vals[i], doubleBatch->data[i]);
+      EXPECT_DOUBLE_EQ(static_cast<double>(test_vals[i]),
+                       doubleBatch->data[i]);
     }
   }
 }
@@ -2447,7 +2448,8 @@ TEST(TestColumnReader, testFloatSkipWithNulls) {
       EXPECT_EQ(0, doubleBatch->notNull[i]);
     } else {
       EXPECT_EQ(1, doubleBatch->notNull[i]);
-      EXPECT_DOUBLE_EQ(test_vals[vals_ix], doubleBatch->data[i]);
+      EXPECT_DOUBLE_EQ(static_cast<double>(test_vals[vals_ix]),
+                       doubleBatch->data[i]);
       vals_ix++;
     }
   }
@@ -2464,7 +2466,8 @@ TEST(TestColumnReader, testFloatSkipWithNulls) {
       EXPECT_EQ(0, doubleBatch->notNull[i]);
     } else {
       EXPECT_EQ(1, doubleBatch->notNull[i]);
-      EXPECT_DOUBLE_EQ(test_vals[vals_ix], doubleBatch->data[i]);
+      EXPECT_DOUBLE_EQ(static_cast<double>(test_vals[vals_ix]),
+                       doubleBatch->data[i]);
       vals_ix++;
     }
   }
@@ -2544,7 +2547,7 @@ TEST(TestColumnReader, testDoubleWithNulls) {
       EXPECT_EQ(0, doubleBatch->notNull[i]) << "Wrong value at " << i;
     } else if (i == 7) {
       EXPECT_EQ(1, doubleBatch->notNull[i]) << "Wrong value at " << i;
-      EXPECT_EQ(true, isnan(doubleBatch->data[i]));
+      EXPECT_EQ(true, std::isnan(doubleBatch->data[i]));
     } else {
       EXPECT_EQ(1, doubleBatch->notNull[i]) << "Wrong value at " << i;
       EXPECT_DOUBLE_EQ(test_vals[i], doubleBatch->data[i])

Reply via email to