From: David Malcolm Date: Fri, 9 Dec 2022 02:19:24 +0000 (-0500) Subject: analyzer: rename region-model-impl-calls.cc to kf.cc X-Git-Tag: basepoints/gcc-14~2628 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=63a42ffc0833553fbcb84b50cf0fd2d867b8a92f;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 7bcc5e501de8..995d77f96c40 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 418d42107552..19e5b9011fe7 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 188cb8e034a8..7bacafe8e249 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: