diff options
author | David Malcolm <dmalcolm@redhat.com> | 2022-12-08 21:19:24 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2022-12-08 21:19:24 -0500 |
commit | 63a42ffc0833553fbcb84b50cf0fd2d867b8a92f (patch) | |
tree | ebc40c0dcbb78223621c8c88d21b190362aec4cc | |
parent | 7dc0ecafe60b224b3343667f55eaaa501f390925 (diff) | |
download | gcc-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.in | 2 | ||||
-rw-r--r-- | gcc/analyzer/analyzer.h | 3 | ||||
-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.h | 12 |
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: |