1234567891011121314151617181920212223242526272829303132333435 |
- // Copyright 2015 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef TOOLS_BLINK_GC_PLUGIN_COLLECT_VISITOR_H_
- #define TOOLS_BLINK_GC_PLUGIN_COLLECT_VISITOR_H_
- #include <vector>
- #include "clang/AST/AST.h"
- #include "clang/AST/RecursiveASTVisitor.h"
- // This visitor collects the entry points for the checker.
- class CollectVisitor : public clang::RecursiveASTVisitor<CollectVisitor> {
- public:
- typedef std::vector<clang::CXXRecordDecl*> RecordVector;
- typedef std::vector<clang::CXXMethodDecl*> MethodVector;
- CollectVisitor();
- RecordVector& record_decls();
- MethodVector& trace_decls();
- // Collect record declarations, including nested declarations.
- bool VisitCXXRecordDecl(clang::CXXRecordDecl* record);
- // Collect tracing method definitions, but don't traverse method bodies.
- bool VisitCXXMethodDecl(clang::CXXMethodDecl* method);
- private:
- RecordVector record_decls_;
- MethodVector trace_decls_;
- };
- #endif // TOOLS_BLINK_GC_PLUGIN_COLLECT_VISITOR_H_
|