diff options
author | David Malcolm <dmalcolm@redhat.com> | 2023-08-21 21:13:17 -0400 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2023-08-21 21:13:17 -0400 |
commit | e40a935db29cfd8f1c68b1d0b7219d71b9c5abb0 (patch) | |
tree | 64267b41b9351e97ff84c50756bcc42814c0a845 | |
parent | 5f55721049415d4887681f3c7115d8619ab80ccd (diff) | |
download | gcc-e40a935db29cfd8f1c68b1d0b7219d71b9c5abb0.zip gcc-e40a935db29cfd8f1c68b1d0b7219d71b9c5abb0.tar.gz gcc-e40a935db29cfd8f1c68b1d0b7219d71b9c5abb0.tar.bz2 |
analyzer: convert note_adding_context to annotating_context
This is enabling work towards the context being able to inject
events into diagnostic paths, rather than just notes after the
warning.
gcc/analyzer/ChangeLog:
* region-model.cc
(class check_external_function_for_access_attr::annotating_ctxt):
Convert to an annotating_context.
* region-model.h (class note_adding_context): Rename to...
(class annotating_context): ...this, updating the "warn" method.
(note_adding_context::make_note): Replace with...
(annotating_context::add_annotations): ...this.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
-rw-r--r-- | gcc/analyzer/region-model.cc | 12 | ||||
-rw-r--r-- | gcc/analyzer/region-model.h | 14 |
2 files changed, 13 insertions, 13 deletions
diff --git a/gcc/analyzer/region-model.cc b/gcc/analyzer/region-model.cc index 494a9cd..5c165ff 100644 --- a/gcc/analyzer/region-model.cc +++ b/gcc/analyzer/region-model.cc @@ -1641,23 +1641,23 @@ check_external_function_for_access_attr (const gcall *call, if (access->mode == access_write_only || access->mode == access_read_write) { - /* Subclass of decorated_region_model_context that + /* Subclass of annotating_context that adds a note about the attr access to any saved diagnostics. */ - class annotating_ctxt : public note_adding_context + class annotating_ctxt : public annotating_context { public: annotating_ctxt (tree callee_fndecl, const attr_access &access, region_model_context *ctxt) - : note_adding_context (ctxt), + : annotating_context (ctxt), m_callee_fndecl (callee_fndecl), m_access (access) { } - std::unique_ptr<pending_note> make_note () final override + void add_annotations () final override { - return make_unique<reason_attr_access> - (m_callee_fndecl, m_access); + add_note (make_unique<reason_attr_access> + (m_callee_fndecl, m_access)); } private: tree m_callee_fndecl; diff --git a/gcc/analyzer/region-model.h b/gcc/analyzer/region-model.h index 4f09f2e..8877265 100644 --- a/gcc/analyzer/region-model.h +++ b/gcc/analyzer/region-model.h @@ -922,28 +922,28 @@ protected: region_model_context *m_inner; }; -/* Subclass of region_model_context_decorator that adds a note - when saving diagnostics. */ +/* Subclass of region_model_context_decorator with a hook for adding + notes/events when saving diagnostics. */ -class note_adding_context : public region_model_context_decorator +class annotating_context : public region_model_context_decorator { public: bool warn (std::unique_ptr<pending_diagnostic> d) override { if (m_inner->warn (std::move (d))) { - add_note (make_note ()); + add_annotations (); return true; } else return false; } - /* Hook to make the new note. */ - virtual std::unique_ptr<pending_note> make_note () = 0; + /* Hook to add new event(s)/note(s) */ + virtual void add_annotations () = 0; protected: - note_adding_context (region_model_context *inner) + annotating_context (region_model_context *inner) : region_model_context_decorator (inner) { } |