diff --git a/gcc/analyzer/region-model.cc b/gcc/analyzer/region-model.cc index 494a9cdf149e8a9b80d176b223e5f1200038f662..5c165ff127f8b747da2c9ecc0979c90cb7abc40e 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 4f09f2e585ac93619f1a4b980bfd7642c392fa0a..88772655bc5bd740278b6a708b9486a8e483d28c 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) { }