From f6e59e62709e4de6bf4305e9d0c77b6893e9bb03 Mon Sep 17 00:00:00 2001 From: Simon Liu <331435+monadbobo@users.noreply.github.com> Date: Tue, 20 Aug 2019 14:23:42 +0800 Subject: [PATCH] Issue#655 support for building with Clang (#700) * Issue#655 support for building with Clang Compiled by clang 7.0.1((Fedora 7.0.1-6.fc29) * Modified some of the code according to sherman's comments. --- CMakeLists.txt | 14 ++++++++++++-- src/console/CliManager.cpp | 1 - src/executor/GoExecutor.cpp | 4 ++-- src/executor/ShowExecutor.h | 1 - src/parser/TraverseSentences.cpp | 3 +-- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 574c2ae6..f356b9ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,8 +299,18 @@ add_compile_options(-Werror) add_compile_options(-Wunused-parameter) add_compile_options(-Wshadow) -# This requries GCC 5.1+ -add_compile_options(-Wsuggest-override) +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + # This requries GCC 5.1+ + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.1) + add_compile_options(-Wsuggest-override) + endif() +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + add_compile_options(-Wno-overloaded-virtual) + add_compile_options(-Wno-self-assign-overloaded) + add_compile_options(-Wno-self-move) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -latomic") +endif() + if(ENABLE_ASAN) add_definitions(-DBUILT_WITH_SANITIZER) diff --git a/src/console/CliManager.cpp b/src/console/CliManager.cpp index 88f2cc6a..efc68bc9 100644 --- a/src/console/CliManager.cpp +++ b/src/console/CliManager.cpp @@ -24,7 +24,6 @@ namespace graph { const int32_t kMaxAuthInfoRetries = 3; const int32_t kMaxUsernameLen = 16; const int32_t kMaxPasswordLen = 24; -const int32_t kMaxCommandLineLen = 1024; CliManager::CliManager() { curSpaceName_ = std::string("(none)"); diff --git a/src/executor/GoExecutor.cpp b/src/executor/GoExecutor.cpp index aee18590..5bf0e009 100644 --- a/src/executor/GoExecutor.cpp +++ b/src/executor/GoExecutor.cpp @@ -474,7 +474,7 @@ StatusOr<std::vector<storage::cpp2::PropDef>> GoExecutor::getStepOutProps() { for (auto &tagIt : tagProps) { auto status = ectx()->schemaManager()->toTagID(spaceId, tagIt.first); if (!status.ok()) { - return Status::Error("No schema found for '%s'", tagIt.first); + return Status::Error("No schema found for '%s'", tagIt.first.c_str()); } auto tagId = status.value(); for (auto &prop : tagIt.second) { @@ -511,7 +511,7 @@ StatusOr<std::vector<storage::cpp2::PropDef>> GoExecutor::getDstProps() { for (auto &tagIt : tagProps) { auto status = ectx()->schemaManager()->toTagID(spaceId, tagIt.first); if (!status.ok()) { - return Status::Error("No schema found for '%s'", tagIt.first); + return Status::Error("No schema found for '%s'", tagIt.first.c_str()); } auto tagId = status.value(); for (auto &prop : tagIt.second) { diff --git a/src/executor/ShowExecutor.h b/src/executor/ShowExecutor.h index 6966edf5..105a5c39 100644 --- a/src/executor/ShowExecutor.h +++ b/src/executor/ShowExecutor.h @@ -37,7 +37,6 @@ public: private: ShowSentence *sentence_{nullptr}; std::unique_ptr<cpp2::ExecutionResponse> resp_; - ConfigRowItem *configItem_{nullptr}; }; } // namespace graph diff --git a/src/parser/TraverseSentences.cpp b/src/parser/TraverseSentences.cpp index 248727ca..65e6723a 100644 --- a/src/parser/TraverseSentences.cpp +++ b/src/parser/TraverseSentences.cpp @@ -214,8 +214,7 @@ StatusOr<std::string> EdgeKeyRef::varname() const { } if (uniqVar_.size() != 1) { - return Status::SyntaxError( - "Near %s, Only support single data source.", toString()); + return Status::SyntaxError("Near %s, Only support single data source.", toString().c_str()); } for (auto &var : uniqVar_) { -- GitLab