From 92230d57d6a05b76362c5991cc2120099f4a236c Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Wed, 13 Jun 2018 10:05:39 +0200 Subject: [PATCH] Clang: Ensure using correct translation unit flags for clang >= 7.0 ...otherwise things will get slower. Change-Id: Ifc01c31a2bb50a277a38ede5dbe58583d15010f5 Reviewed-by: Ivan Donchevskii --- src/tools/clangbackend/source/clangbackend_global.h | 5 +++++ .../clangbackend/source/clangtranslationunitupdater.cpp | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/tools/clangbackend/source/clangbackend_global.h b/src/tools/clangbackend/source/clangbackend_global.h index e0cd0a35739..2d2535e12cd 100644 --- a/src/tools/clangbackend/source/clangbackend_global.h +++ b/src/tools/clangbackend/source/clangbackend_global.h @@ -46,4 +46,9 @@ enum class PreferredTranslationUnit # define IS_INVALIDDECL_SUPPORTED #endif +// CLANG-UPGRADE-CHECK: Remove IS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_SUPPORTED once we require clang >= 7.0 +#if defined(CINDEX_VERSION_HAS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_BACKPORTED) || CINDEX_VERSION_MINOR >= 46 +# define IS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_SUPPORTED +#endif + } // namespace ClangBackEnd diff --git a/src/tools/clangbackend/source/clangtranslationunitupdater.cpp b/src/tools/clangbackend/source/clangtranslationunitupdater.cpp index 6033224732a..ac21ebb72ab 100644 --- a/src/tools/clangbackend/source/clangtranslationunitupdater.cpp +++ b/src/tools/clangbackend/source/clangtranslationunitupdater.cpp @@ -25,6 +25,7 @@ #include "clangtranslationunitupdater.h" +#include "clangbackend_global.h" #include "clangfilepath.h" #include "clangstring.h" #include "clangunsavedfilesshallowarguments.h" @@ -176,7 +177,7 @@ uint TranslationUnitUpdater::defaultParseOptions() return CXTranslationUnit_CacheCompletionResults | CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_CreatePreambleOnFirstParse -#ifdef CINDEX_VERSION_HAS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_BACKPORTED +#ifdef IS_LIMITSKIPFUNCTIONBODIESTOPREAMBLE_SUPPORTED | CXTranslationUnit_SkipFunctionBodies | CXTranslationUnit_LimitSkipFunctionBodiesToPreamble #endif