diff options
| author | Erik Verbruggen <erikjv@me.com> | 2012-04-12 10:11:59 +0000 |
|---|---|---|
| committer | Erik Verbruggen <erikjv@me.com> | 2012-04-12 10:11:59 +0000 |
| commit | 6e92251f9b8191e0bad9e73b4a2a5932a4f35f91 (patch) | |
| tree | aa1068ef614617995355eae4f9d9d8a1b78fa52a /clang/lib/Frontend | |
| parent | f2a8ea3afdc4f30061ca637d94a4f1974a93c8f2 (diff) | |
| download | bcm5719-llvm-6e92251f9b8191e0bad9e73b4a2a5932a4f35f91.tar.gz bcm5719-llvm-6e92251f9b8191e0bad9e73b4a2a5932a4f35f91.zip | |
Added a flag to the parser to skip method bodies.
llvm-svn: 154584
Diffstat (limited to 'clang/lib/Frontend')
| -rw-r--r-- | clang/lib/Frontend/ASTUnit.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/FrontendAction.cpp | 3 |
3 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index 15500989e87..e32fa630a73 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -1882,6 +1882,7 @@ ASTUnit *ASTUnit::LoadFromCommandLine(const char **ArgBegin, TranslationUnitKind TUKind, bool CacheCodeCompletionResults, bool AllowPCHWithCompilerErrors, + bool SkipFunctionBodies, OwningPtr<ASTUnit> *ErrAST) { if (!Diags.getPtr()) { // No diagnostics engine was provided, so create our own diagnostics object @@ -1925,6 +1926,8 @@ ASTUnit *ASTUnit::LoadFromCommandLine(const char **ArgBegin, // Override the resources path. CI->getHeaderSearchOpts().ResourceDir = ResourceFilesPath; + CI->getFrontendOpts().SkipFunctionBodies = SkipFunctionBodies; + // Create the AST unit. OwningPtr<ASTUnit> AST; AST.reset(new ASTUnit(false)); @@ -2365,6 +2368,8 @@ void ASTUnit::CodeComplete(StringRef File, unsigned Line, unsigned Column, FrontendOpts.ShowGlobalSymbolsInCodeCompletion); Clang->setCodeCompletionConsumer(AugmentedConsumer); + Clang->getFrontendOpts().SkipFunctionBodies = true; + // If we have a precompiled preamble, try to use it. We only allow // the use of the precompiled preamble if we're if the completion // point is within the main file, after the end of the precompiled diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 60273816d91..27cfc9d5425 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -88,6 +88,7 @@ void CompilerInstance::setASTConsumer(ASTConsumer *Value) { void CompilerInstance::setCodeCompletionConsumer(CodeCompleteConsumer *Value) { CompletionConsumer.reset(Value); + getFrontendOpts().SkipFunctionBodies = true; } // Diagnostics diff --git a/clang/lib/Frontend/FrontendAction.cpp b/clang/lib/Frontend/FrontendAction.cpp index fccee89e06f..da4bdfabc06 100644 --- a/clang/lib/Frontend/FrontendAction.cpp +++ b/clang/lib/Frontend/FrontendAction.cpp @@ -412,7 +412,8 @@ void ASTFrontendAction::ExecuteAction() { if (!CI.hasSema()) CI.createSema(getTranslationUnitKind(), CompletionConsumer); - ParseAST(CI.getSema(), CI.getFrontendOpts().ShowStats); + ParseAST(CI.getSema(), CI.getFrontendOpts().ShowStats, + CI.getFrontendOpts().SkipFunctionBodies); } void PluginASTAction::anchor() { } |

