From: Ben Liblit <liblit@cs...> - 2009-11-05 19:15:22
I am implementing a simple thread-escape analysis, but cannot figure out
how to interact with CIL's points-to analysis module properly.
Define an escaped value as follows:
1. Every global variable escapes.
2. Everything reachable via pointers from an escaped value also escapes.
I hoped that Ptranal.absloc_e_transitive_points_to would help me
implement the second clause. However, this function expects an
expression, not a varinfo. I tried building a new expression around my
global variable's varinfo:
Ptranal.absloc_e_transitive_points_to (Lval (Var v, NoOffset))
However, this fails with a Not_found exception:
Raised at file "hashtbl.ml", line 93, characters 19-28
Called from file "src/ext/pta/ptranal.ml", line 554, characters 33-48
So how can I get the transitive closure (across pointers) of the
points-to set of a global variable? Any hints would be greatly appreciated.