================
@@ -232,6 +225,34 @@ class GlobalEscapeFact : public OriginEscapesFact {
const OriginManager &OM) const override;
};
+/// Represents escape of an origin through a function call.
+/// Example:
+/// void f(int *i);
+/// void g(int *j[[clang::noescape]]) {f(j)};
+/// This fact enables us to catch that the noescape parameter j escapes through
+/// the call to function f
+class CallEscapeFact : public OriginEscapesFact {
+ const Expr *Call;
+ const Expr *Argument;
----------------
Xazax-hun wrote:
Do we need both the argument and the argument index? I wonder if we could
always use one to get the other?
https://github.com/llvm/llvm-project/pull/186126
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits