| Index: tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h
|
| diff --git a/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h b/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h
|
| index e05bd82fe97fba74f044ceb24160811649ea4b54..bcfb3afbd596e88e41ab5c0d4b70abb859e96daf 100644
|
| --- a/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h
|
| +++ b/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h
|
| @@ -8,10 +8,8 @@
|
| #include <string>
|
|
|
| #include "BlinkGCPluginOptions.h"
|
| -#include "CheckFieldsVisitor.h"
|
| -#include "CheckFinalizerVisitor.h"
|
| -#include "CheckGCRootsVisitor.h"
|
| #include "Config.h"
|
| +#include "DiagnosticsReporter.h"
|
| #include "clang/AST/AST.h"
|
| #include "clang/AST/ASTConsumer.h"
|
| #include "clang/Basic/Diagnostic.h"
|
| @@ -75,7 +73,7 @@ class BlinkGCPluginConsumer : public clang::ASTConsumer {
|
|
|
| std::string GetLocString(clang::SourceLocation loc);
|
|
|
| - bool IsIgnored(RecordInfo* record);
|
| + bool IsIgnored(RecordInfo* info);
|
|
|
| bool IsIgnoredClass(RecordInfo* info);
|
|
|
| @@ -85,112 +83,11 @@ class BlinkGCPluginConsumer : public clang::ASTConsumer {
|
|
|
| bool GetFilename(clang::SourceLocation loc, std::string* filename);
|
|
|
| - clang::DiagnosticBuilder ReportDiagnostic(
|
| - clang::SourceLocation location,
|
| - unsigned diag_id);
|
| -
|
| - void ReportClassMustLeftMostlyDeriveGC(RecordInfo* info);
|
| - void ReportClassRequiresTraceMethod(RecordInfo* info);
|
| - void ReportBaseRequiresTracing(RecordInfo* derived,
|
| - clang::CXXMethodDecl* trace,
|
| - clang::CXXRecordDecl* base);
|
| - void ReportFieldsRequireTracing(RecordInfo* info,
|
| - clang::CXXMethodDecl* trace);
|
| - void ReportClassContainsInvalidFields(
|
| - RecordInfo* info,
|
| - const CheckFieldsVisitor::Errors& errors);
|
| - void ReportClassContainsGCRoots(RecordInfo* info,
|
| - const CheckGCRootsVisitor::Errors& errors);
|
| - void ReportFinalizerAccessesFinalizedFields(
|
| - clang::CXXMethodDecl* dtor,
|
| - const CheckFinalizerVisitor::Errors& errors);
|
| - void ReportClassRequiresFinalization(RecordInfo* info);
|
| - void ReportClassDoesNotRequireFinalization(RecordInfo* info);
|
| - void ReportClassMustDeclareGCMixinTraceMethod(RecordInfo* info);
|
| - void ReportOverriddenNonVirtualTrace(RecordInfo* info,
|
| - clang::CXXMethodDecl* trace,
|
| - clang::CXXMethodDecl* overridden);
|
| - void ReportMissingTraceDispatchMethod(RecordInfo* info);
|
| - void ReportMissingFinalizeDispatchMethod(RecordInfo* info);
|
| - void ReportMissingDispatchMethod(RecordInfo* info, unsigned error);
|
| - void ReportVirtualAndManualDispatch(RecordInfo* info,
|
| - clang::CXXMethodDecl* dispatch);
|
| - void ReportMissingTraceDispatch(const clang::FunctionDecl* dispatch,
|
| - RecordInfo* receiver);
|
| - void ReportMissingFinalizeDispatch(const clang::FunctionDecl* dispatch,
|
| - RecordInfo* receiver);
|
| - void ReportMissingDispatch(const clang::FunctionDecl* dispatch,
|
| - RecordInfo* receiver,
|
| - unsigned error);
|
| - void ReportDerivesNonStackAllocated(RecordInfo* info, BasePoint* base);
|
| - void ReportClassOverridesNew(RecordInfo* info, clang::CXXMethodDecl* newop);
|
| - void ReportClassDeclaresPureVirtualTrace(RecordInfo* info,
|
| - clang::CXXMethodDecl* trace);
|
| - void ReportLeftMostBaseMustBePolymorphic(RecordInfo* derived,
|
| - clang::CXXRecordDecl* base);
|
| - void ReportBaseClassMustDeclareVirtualTrace(RecordInfo* derived,
|
| - clang::CXXRecordDecl* base);
|
| - void NoteManualDispatchMethod(clang::CXXMethodDecl* dispatch);
|
| - void NoteBaseRequiresTracing(BasePoint* base);
|
| - void NoteFieldRequiresTracing(RecordInfo* holder, clang::FieldDecl* field);
|
| - void NotePartObjectContainsGCRoot(FieldPoint* point);
|
| - void NoteFieldContainsGCRoot(FieldPoint* point);
|
| - void NoteUserDeclaredDestructor(clang::CXXMethodDecl* dtor);
|
| - void NoteUserDeclaredFinalizer(clang::CXXMethodDecl* dtor);
|
| - void NoteBaseRequiresFinalization(BasePoint* base);
|
| - void NoteField(FieldPoint* point, unsigned note);
|
| - void NoteField(clang::FieldDecl* field, unsigned note);
|
| - void NoteOverriddenNonVirtualTrace(clang::CXXMethodDecl* overridden);
|
| -
|
| - unsigned diag_class_must_left_mostly_derive_gc_;
|
| - unsigned diag_class_requires_trace_method_;
|
| - unsigned diag_base_requires_tracing_;
|
| - unsigned diag_fields_require_tracing_;
|
| - unsigned diag_class_contains_invalid_fields_;
|
| - unsigned diag_class_contains_gc_root_;
|
| - unsigned diag_class_requires_finalization_;
|
| - unsigned diag_class_does_not_require_finalization_;
|
| - unsigned diag_finalizer_accesses_finalized_field_;
|
| - unsigned diag_finalizer_eagerly_finalized_field_;
|
| - unsigned diag_overridden_non_virtual_trace_;
|
| - unsigned diag_missing_trace_dispatch_method_;
|
| - unsigned diag_missing_finalize_dispatch_method_;
|
| - unsigned diag_virtual_and_manual_dispatch_;
|
| - unsigned diag_missing_trace_dispatch_;
|
| - unsigned diag_missing_finalize_dispatch_;
|
| - unsigned diag_derives_non_stack_allocated_;
|
| - unsigned diag_class_overrides_new_;
|
| - unsigned diag_class_declares_pure_virtual_trace_;
|
| - unsigned diag_left_most_base_must_be_polymorphic_;
|
| - unsigned diag_base_class_must_declare_virtual_trace_;
|
| -
|
| - unsigned diag_base_requires_tracing_note_;
|
| - unsigned diag_field_requires_tracing_note_;
|
| - unsigned diag_raw_ptr_to_gc_managed_class_note_;
|
| - unsigned diag_ref_ptr_to_gc_managed_class_note_;
|
| - unsigned diag_reference_ptr_to_gc_managed_class_note_;
|
| - unsigned diag_own_ptr_to_gc_managed_class_note_;
|
| - unsigned diag_member_to_gc_unmanaged_class_note_;
|
| - unsigned diag_stack_allocated_field_note_;
|
| - unsigned diag_member_in_unmanaged_class_note_;
|
| - unsigned diag_part_object_to_gc_derived_class_note_;
|
| - unsigned diag_part_object_contains_gc_root_note_;
|
| - unsigned diag_field_contains_gc_root_note_;
|
| - unsigned diag_finalized_field_note_;
|
| - unsigned diag_eagerly_finalized_field_note_;
|
| - unsigned diag_user_declared_destructor_note_;
|
| - unsigned diag_user_declared_finalizer_note_;
|
| - unsigned diag_base_requires_finalization_note_;
|
| - unsigned diag_field_requires_finalization_note_;
|
| - unsigned diag_overridden_non_virtual_trace_note_;
|
| - unsigned diag_manual_dispatch_method_note_;
|
| -
|
| clang::CompilerInstance& instance_;
|
| - clang::DiagnosticsEngine& diagnostic_;
|
| + DiagnosticsReporter reporter_;
|
| BlinkGCPluginOptions options_;
|
| RecordCache cache_;
|
| JsonWriter* json_;
|
| };
|
|
|
| -
|
| #endif // TOOLS_BLINK_GC_PLUGIN_BLINK_GC_PLUGIN_CONSUMER_H_
|
|
|