diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-10-15 17:22:56 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-10-15 17:22:56 +0000 |
commit | 8178dd362f58aadcff2cea18dede72b56d815f6e (patch) | |
tree | f6fcdc386f9e82754aa341eb066b37b6f70212eb /clang/unittests/Frontend/FrontendActionTest.cpp | |
parent | 39323f95cc26850a94f5798380b5ea1dffff07a8 (diff) | |
download | bcm5719-llvm-8178dd362f58aadcff2cea18dede72b56d815f6e.tar.gz bcm5719-llvm-8178dd362f58aadcff2cea18dede72b56d815f6e.zip |
Revert "Fix late template parsing leak with incremental processing"
This reverts commit r219810.
The test suite appears broken.
llvm-svn: 219813
Diffstat (limited to 'clang/unittests/Frontend/FrontendActionTest.cpp')
-rw-r--r-- | clang/unittests/Frontend/FrontendActionTest.cpp | 49 |
1 files changed, 4 insertions, 45 deletions
diff --git a/clang/unittests/Frontend/FrontendActionTest.cpp b/clang/unittests/Frontend/FrontendActionTest.cpp index 9973d3f8bea..31711566921 100644 --- a/clang/unittests/Frontend/FrontendActionTest.cpp +++ b/clang/unittests/Frontend/FrontendActionTest.cpp @@ -14,7 +14,6 @@ #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/CompilerInvocation.h" #include "clang/Lex/Preprocessor.h" -#include "clang/Sema/Sema.h" #include "llvm/ADT/Triple.h" #include "llvm/Support/MemoryBuffer.h" #include "gtest/gtest.h" @@ -26,13 +25,10 @@ namespace { class TestASTFrontendAction : public ASTFrontendAction { public: - TestASTFrontendAction(bool enableIncrementalProcessing = false, - bool actOnEndOfTranslationUnit = false) - : EnableIncrementalProcessing(enableIncrementalProcessing), - ActOnEndOfTranslationUnit(actOnEndOfTranslationUnit) { } + TestASTFrontendAction(bool enableIncrementalProcessing = false) + : EnableIncrementalProcessing(enableIncrementalProcessing) { } bool EnableIncrementalProcessing; - bool ActOnEndOfTranslationUnit; std::vector<std::string> decl_names; virtual bool BeginSourceFileAction(CompilerInstance &ci, StringRef filename) { @@ -44,22 +40,15 @@ public: virtual std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { - return llvm::make_unique<Visitor>(CI, ActOnEndOfTranslationUnit, - decl_names); + return llvm::make_unique<Visitor>(decl_names); } private: class Visitor : public ASTConsumer, public RecursiveASTVisitor<Visitor> { public: - Visitor(CompilerInstance &ci, bool actOnEndOfTranslationUnit, - std::vector<std::string> &decl_names) : - CI(ci), ActOnEndOfTranslationUnit(actOnEndOfTranslationUnit), - decl_names_(decl_names) {} + Visitor(std::vector<std::string> &decl_names) : decl_names_(decl_names) {} virtual void HandleTranslationUnit(ASTContext &context) { - if (ActOnEndOfTranslationUnit) { - CI.getSema().ActOnEndOfTranslationUnit(); - } TraverseDecl(context.getTranslationUnitDecl()); } @@ -69,8 +58,6 @@ private: } private: - CompilerInstance &CI; - bool ActOnEndOfTranslationUnit; std::vector<std::string> &decl_names_; }; }; @@ -115,34 +102,6 @@ TEST(ASTFrontendAction, IncrementalParsing) { EXPECT_EQ("x", test_action.decl_names[1]); } -TEST(ASTFrontendAction, LateTemplateIncrementalParsing) { - CompilerInvocation *invocation = new CompilerInvocation; - invocation->getLangOpts()->CPlusPlus = true; - invocation->getLangOpts()->DelayedTemplateParsing = true; - invocation->getPreprocessorOpts().addRemappedFile( - "test.cc", MemoryBuffer::getMemBuffer( - "template<typename T> struct A { A(T); T data; };\n" - "template<typename T> struct B: public A<T> {\n" - " B();\n" - " B(B const& b): A<T>(b.data) {}\n" - "};\n" - "B<char> c() { return B<char>(); }\n").release()); - invocation->getFrontendOpts().Inputs.push_back(FrontendInputFile("test.cc", - IK_CXX)); - invocation->getFrontendOpts().ProgramAction = frontend::ParseSyntaxOnly; - invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; - CompilerInstance compiler; - compiler.setInvocation(invocation); - compiler.createDiagnostics(); - - TestASTFrontendAction test_action(/*enableIncrementalProcessing=*/true, - /*actOnEndOfTranslationUnit=*/true); - ASSERT_TRUE(compiler.ExecuteAction(test_action)); - ASSERT_EQ(13U, test_action.decl_names.size()); - EXPECT_EQ("A", test_action.decl_names[0]); - EXPECT_EQ("c", test_action.decl_names[12]); -} - struct TestPPCallbacks : public PPCallbacks { TestPPCallbacks() : SeenEnd(false) {} |