Index: tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp |
diff --git a/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp b/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp |
index 2d6eff256817f7b2c897a7a851329e47a54fd382..2d221d7667a858c0d1ff8ec4bf1c7ca5b79f919b 100644 |
--- a/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp |
+++ b/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp |
@@ -17,7 +17,6 @@ |
#include "clang/AST/RecursiveASTVisitor.h" |
#include "clang/Frontend/CompilerInstance.h" |
#include "clang/Frontend/FrontendPluginRegistry.h" |
-#include "clang/Sema/Sema.h" |
using namespace clang; |
using std::string; |
@@ -145,23 +144,6 @@ const char kClassMustDeclareGCMixinTraceMethod[] = |
"[blink-gc] Class %0 which inherits from GarbageCollectedMixin must" |
" locally declare and override trace(Visitor*)"; |
-// Use a local RAV implementation to simply collect all FunctionDecls marked for |
-// late template parsing. This happens with the flag -fdelayed-template-parsing, |
-// which is on by default in MSVC-compatible mode. |
-std::set<FunctionDecl*> GetLateParsedFunctionDecls(TranslationUnitDecl* decl) { |
- struct Visitor : public RecursiveASTVisitor<Visitor> { |
- bool VisitFunctionDecl(FunctionDecl* function_decl) { |
- if (function_decl->isLateTemplateParsed()) |
- late_parsed_decls.insert(function_decl); |
- return true; |
- } |
- |
- std::set<FunctionDecl*> late_parsed_decls; |
- } v; |
- v.TraverseDecl(decl); |
- return v.late_parsed_decls; |
-} |
- |
struct BlinkGCPluginOptions { |
BlinkGCPluginOptions() |
: enable_oilpan(false) |
@@ -1035,8 +1017,6 @@ class BlinkGCPluginConsumer : public ASTConsumer { |
if (diagnostic_.hasErrorOccurred()) |
return; |
- ParseFunctionTemplates(context.getTranslationUnitDecl()); |
- |
CollectVisitor visitor; |
visitor.TraverseDecl(context.getTranslationUnitDecl()); |
@@ -1083,31 +1063,6 @@ class BlinkGCPluginConsumer : public ASTConsumer { |
} |
} |
- void ParseFunctionTemplates(TranslationUnitDecl* decl) { |
- if (!instance_.getLangOpts().DelayedTemplateParsing) |
- return; // Nothing to do. |
- |
- std::set<FunctionDecl*> late_parsed_decls = |
- GetLateParsedFunctionDecls(decl); |
- clang::Sema& sema = instance_.getSema(); |
- |
- for (const FunctionDecl* fd : late_parsed_decls) { |
- assert(fd->isLateTemplateParsed()); |
- |
- if (!Config::IsTraceMethod(fd)) |
- continue; |
- |
- if (instance_.getSourceManager().isInSystemHeader( |
- instance_.getSourceManager().getSpellingLoc(fd->getLocation()))) |
- continue; |
- |
- // Force parsing and AST building of the yet-uninstantiated function |
- // template trace method bodies. |
- clang::LateParsedTemplate* lpt = sema.LateParsedTemplateMap[fd]; |
- sema.LateTemplateParser(sema.OpaqueParser, *lpt); |
- } |
- } |
- |
// Main entry for checking a record declaration. |
void CheckRecord(RecordInfo* info) { |
if (IsIgnored(info)) |