[cfe-dev] usage of clang in an university project
kremenek at apple.com
Mon Oct 8 10:17:24 PDT 2007
On Oct 7, 2007, at 12:13 PM, Nuno Lopes wrote:
>> Ok, the dataflow framework Ted is working on will be useful to
>> you. We don't really support interprocedural analysis yet though.
> No, I don't need interprocedural analysis right now. For now, I'll
> just code what the functions do. e.g.:
> zend_parse_parameters(ZEND_NUM_ARGS(), "s|d", &str, &str_len,
> I know that str and str_len will get initialized (unless the
> function returns FAILURE) and that integer may or may not be
> initialized. So for now, I'll have all the information hard-coded.
> Maybe next year I can do my master thesis with clang/llvm and use
> interprocedural analysis.
Currently clang has support for building CFGs from ASTs, and there is
a fairly generic dataflow solver in place for doing flow-sensitive
dataflow analyses (both forward and backward). Currently there is an
implementations of both live variable analysis and uninitialized
values analysis built on this solver. I won't attest that the
framework (or the analyses built on it) is bug-free, nor that it is in
the final form it eventually will be in, but it certainly implements
most of the boilerplate for iterating over statements, merging
dataflow values, etc. We of course would welcome feedback if you
decided to use this part of clang, as the goal is to make that part of
clang very powerful but also easy to use.
I'm more than happy to provide support if you are interested in using
this part of clang. I'm afraid that documentation is limited for this
part of clang, although I do plan on trying to remedy this problem (at
least partially) in the short term.
More information about the cfe-dev