@@ -71,6 +71,15 @@ struct
7171 (* Nothing needs to be done *)
7272 man.local
7373
74+ (* * For a call to a _special_ function f "lval = f(args)" or "f(args)",
75+ computes the caller state after the function call.
76+ For this analysis, source and sink functions will be considered _special_ and have to be treated here. *)
77+ let special man (lval : lval option ) (f :varinfo ) (arglist :exp list ) : D.t =
78+ let caller_state = man.local in
79+ (* TODO: Check if f is a sink / source and handle it appropriately *)
80+ (* To warn about a potential issue in the code, use M.warn. *)
81+ caller_state
82+
7483 (* * Handles going from start node of function [f] into the function body of [f].
7584 Meant to handle e.g. initializiation of local variables. *)
7685 let body man (f :fundec ) : D.t =
@@ -120,15 +129,6 @@ struct
120129 (* TODO: Record whether lval was tainted. *)
121130 caller_state
122131
123- (* * For a call to a _special_ function f "lval = f(args)" or "f(args)",
124- computes the caller state after the function call.
125- For this analysis, source and sink functions will be considered _special_ and have to be treated here. *)
126- let special man (lval : lval option ) (f :varinfo ) (arglist :exp list ) : D.t =
127- let caller_state = man.local in
128- (* TODO: Check if f is a sink / source and handle it appropriately *)
129- (* To warn about a potential issue in the code, use M.warn. *)
130- caller_state
131-
132132 (* You may leave these alone *)
133133 let startstate v = D. bot ()
134134 let threadenter man ~multiple lval f args = [D. top () ]
0 commit comments