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])
