Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h

Issue 1926863002: GC plugin: split out reporting of errors/warnings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: whitespace Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « no previous file | tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698