aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2022-12-08 21:19:24 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2022-12-08 21:19:24 -0500
commit63a42ffc0833553fbcb84b50cf0fd2d867b8a92f (patch)
treeebc40c0dcbb78223621c8c88d21b190362aec4cc
parent7dc0ecafe60b224b3343667f55eaaa501f390925 (diff)
downloadgcc-63a42ffc0833553fbcb84b50cf0fd2d867b8a92f.zip
gcc-63a42ffc0833553fbcb84b50cf0fd2d867b8a92f.tar.gz
gcc-63a42ffc0833553fbcb84b50cf0fd2d867b8a92f.tar.bz2
analyzer: rename region-model-impl-calls.cc to kf.cc
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>
-rw-r--r--gcc/Makefile.in2
-rw-r--r--gcc/analyzer/analyzer.h3
-rw-r--r--gcc/analyzer/kf.cc (renamed from gcc/analyzer/region-model-impl-calls.cc)0
-rw-r--r--gcc/analyzer/known-function-manager.h12
4 files changed, 15 insertions, 2 deletions
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 7bcc5e5..995d77f 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 418d421..19e5b90 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
index ff2f1b1..ff2f1b1 100644
--- a/gcc/analyzer/region-model-impl-calls.cc
+++ b/gcc/analyzer/kf.cc
diff --git a/gcc/analyzer/known-function-manager.h b/gcc/analyzer/known-function-manager.h
index 188cb8e..7bacafe 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: