From 4cec716eacd8088de04c4633ce9cc6920024586f Mon Sep 17 00:00:00 2001 From: eidheim Date: Sat, 13 Jun 2015 18:06:57 +0200 Subject: [PATCH] Removed some maybe-dangerous use of auto. Added DefaultFlags, and using this as default parameter to for instance ReparseTranslationUnit. --- src/CompileCommands.cc | 2 +- src/CompletionString.cc | 2 +- src/TranslationUnit.cc | 11 ++++++++--- src/TranslationUnit.h | 9 +++++---- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/CompileCommands.cc b/src/CompileCommands.cc index af9b64d..42a7095 100644 --- a/src/CompileCommands.cc +++ b/src/CompileCommands.cc @@ -17,7 +17,7 @@ std::vector clang::CompileCommands:: get_commands() { unsigned N = clang_CompileCommands_getSize(commands_); std::vector res; - for (auto i = 0; i < N; i++) { + for (unsigned i = 0; i < N; i++) { res.emplace_back(clang::CompileCommand(i, this)); } return res; diff --git a/src/CompletionString.cc b/src/CompletionString.cc index a3c17eb..06bc9cb 100644 --- a/src/CompletionString.cc +++ b/src/CompletionString.cc @@ -17,7 +17,7 @@ std::vector clang::CompletionString:: get_chunks() { std::vector res; if (clang_getCompletionAvailability(str_) == CXAvailability_Available) { - for (auto i = 0; i < get_num_chunks(); i++) { + for (size_t i = 0; i < get_num_chunks(); i++) { res.emplace_back(clang_getCString(clang_getCompletionChunkText(str_, i)), static_cast (clang_getCompletionChunkKind(str_, i))); diff --git a/src/TranslationUnit.cc b/src/TranslationUnit.cc index e709375..57dfeb4 100644 --- a/src/TranslationUnit.cc +++ b/src/TranslationUnit.cc @@ -8,7 +8,6 @@ clang::TranslationUnit:: clang::TranslationUnit& clang::TranslationUnit:: operator=(const clang::TranslationUnit &tu) { tu_ = tu.tu_; - flags = tu.flags; return *this; } @@ -43,7 +42,8 @@ clang::TranslationUnit:: TranslationUnit(clang::Index *index, const std::string &filepath, const std::vector &command_line_args, - const std::map &buffers) { + const std::map &buffers, + unsigned flags) { std::vector files; for (auto &buffer : buffers) { CXUnsavedFile file; @@ -68,7 +68,8 @@ TranslationUnit(clang::Index *index, int clang::TranslationUnit:: ReparseTranslationUnit(const std::string &file_path, - const std::map &buffers) { + const std::map &buffers, + unsigned flags) { std::vector files; for (auto &buffer : buffers) { CXUnsavedFile file; @@ -82,3 +83,7 @@ ReparseTranslationUnit(const std::string &file_path, files.data(), flags); } + +unsigned clang::TranslationUnit::DefaultFlags() { + return CXTranslationUnit_CacheCompletionResults | CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_Incomplete; +} diff --git a/src/TranslationUnit.h b/src/TranslationUnit.h index 68b5c30..e92c588 100644 --- a/src/TranslationUnit.h +++ b/src/TranslationUnit.h @@ -23,7 +23,8 @@ namespace clang { TranslationUnit(Index *index, const std::string &filepath, const std::vector &command_line_args, - const std::map &buffers); + const std::map &buffers, + unsigned flags=DefaultFlags()); TranslationUnit(Index *index, const std::string &filepath); ~TranslationUnit(); @@ -31,8 +32,9 @@ namespace clang { TranslationUnit& operator=(const TranslationUnit &tu); int ReparseTranslationUnit(const std::string &file_path, const std::map - &buffers); - + &buffers, + unsigned flags=DefaultFlags()); + static unsigned DefaultFlags(); private: friend Token; friend Tokens; @@ -41,7 +43,6 @@ namespace clang { friend Cursor; friend CodeCompleteResults; CXTranslationUnit tu_; - unsigned flags=CXTranslationUnit_CacheCompletionResults | CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_Incomplete; }; } // namespace clang #endif // TRANSLATIONUNIT_H_