public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [committed] analyzer: rename region-model-impl-calls.cc to kf.cc
@ 2022-12-09  2:29 David Malcolm
  0 siblings, 0 replies; only message in thread
From: David Malcolm @ 2022-12-09  2:29 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r13-4579-g63a42ffc083355.

gcc/ChangeLog:
	* Makefile.in (ANALYZER_OBJS): Update for renaming of
	analyzer/region-model-impl-calls.cc to analyzer/kf.cc.

gcc/analyzer/ChangeLog:
	* analyzer.h (class known_function): Expand comment.
	* region-model-impl-calls.cc: Rename to...
	* kf.cc: ...this.
	* known-function-manager.h (class known_function_manager): Add
	leading comment.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
---
 gcc/Makefile.in                                    |  2 +-
 gcc/analyzer/analyzer.h                            |  3 ++-
 gcc/analyzer/{region-model-impl-calls.cc => kf.cc} |  0
 gcc/analyzer/known-function-manager.h              | 12 ++++++++++++
 4 files changed, 15 insertions(+), 2 deletions(-)
 rename gcc/analyzer/{region-model-impl-calls.cc => kf.cc} (100%)

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 7bcc5e501de..995d77f96c4 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1269,6 +1269,7 @@ ANALYZER_OBJS = \
 	analyzer/feasible-graph.o \
 	analyzer/function-set.o \
 	analyzer/infinite-recursion.o \
+	analyzer/kf.o \
 	analyzer/kf-analyzer.o \
 	analyzer/kf-lang-cp.o \
 	analyzer/known-function-manager.o \
@@ -1278,7 +1279,6 @@ ANALYZER_OBJS = \
 	analyzer/region.o \
 	analyzer/region-model.o \
 	analyzer/region-model-asm.o \
-	analyzer/region-model-impl-calls.o \
 	analyzer/region-model-manager.o \
 	analyzer/region-model-reachability.o \
 	analyzer/sm.o \
diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h
index 418d4210755..19e5b9011fe 100644
--- a/gcc/analyzer/analyzer.h
+++ b/gcc/analyzer/analyzer.h
@@ -229,7 +229,8 @@ extern location_t get_stmt_location (const gimple *stmt, function *fun);
 extern bool compat_types_p (tree src_type, tree dst_type);
 
 /* Abstract base class for simulating the behavior of known functions,
-   supplied by the core of the analyzer, or by plugins.  */
+   supplied by the core of the analyzer, or by plugins.
+   The former are typically implemented in the various kf*.cc  */
 
 class known_function
 {
diff --git a/gcc/analyzer/region-model-impl-calls.cc b/gcc/analyzer/kf.cc
similarity index 100%
rename from gcc/analyzer/region-model-impl-calls.cc
rename to gcc/analyzer/kf.cc
diff --git a/gcc/analyzer/known-function-manager.h b/gcc/analyzer/known-function-manager.h
index 188cb8e034a..7bacafe8e24 100644
--- a/gcc/analyzer/known-function-manager.h
+++ b/gcc/analyzer/known-function-manager.h
@@ -25,6 +25,18 @@ along with GCC; see the file COPYING3.  If not see
 
 namespace ana {
 
+/* Instances of known_function are registered with the known_function_manager
+   when the analyzer starts.
+
+   The known_function_manager has responsibility for determining which
+   known_function instance (if any) is relevant at a call site, by checking
+   name or id, and by calling known_function::matches_call_types_p to ensure
+   that the known_function's preconditions hold (typically assumptions about
+   types e.g. that "has 3 args, and that arg 0 is of pointer type").
+
+   The known_function subclasses themselves have responsibility for
+   determining the outcome(s) of the call.  */
+
 class known_function_manager : public log_user
 {
 public:
-- 
2.26.3


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-12-09  2:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-09  2:29 [committed] analyzer: rename region-model-impl-calls.cc to kf.cc David Malcolm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).