<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 15, 2017, at 4:45 AM, Gábor Horváth <<a href="mailto:xazax.hun@gmail.com" class="">xazax.hun@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi,</div></div></blockquote><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra">Note that, it is possible to feed raw source code to the analyzer to be used through body farm (there are some limitations though). This functionality works without relying on the ASTImporter.<br class=""><div class="gmail_quote"><div class="">To see how this works there is a test case here:<span class="Apple-converted-space"> </span><a href="https://github.com/llvm-mirror/clang/blob/master/test/Analysis/model-file.cpp" class="">https://github.com/llvm-mirror/clang/blob/master/test/Analysis/model-file.cpp</a></div><div class="">One of the modelled functions can be found here:<span class="Apple-converted-space"> </span><a href="https://github.com/llvm-mirror/clang/blob/master/test/Analysis/Inputs/Models/notzero.model" class="">https://github.com/llvm-mirror/clang/blob/master/test/Analysis/Inputs/Models/notzero.model</a></div></div></div></div></div></blockquote><div><br class=""></div><div>Hi Gabor,</div><div><br class=""></div><div>From my understanding that only works for C, and not for C++, right?</div><div><br class=""></div><div>Thanks,</div><div>George</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><div class="">Regards,</div><div class="">Gábor<br class=""></div><div class=""><br class=""></div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><br class="">* The C++ operator-new project is about constructing the clang's CFG more accurately. Because most of the compilation relies on the LLVM's CFG, clang CFG is essentially used only by the analyzer and a couple of analysis-based compiler warnings, but not for compilation, and as such it is not entirely finished. I didn't look deeply into this problem yet, but it seems that by the time the analyzer sees the object construction element in the CFG, he wasn't informed that he needs to allocate symbolic memory to hold the newly constructed object, which needs fixing.<br class=""><br class="">While fixing the CFG is the first step, the ultimate goal of this project is to enable the "-analyzer-config c++-allocator-inlining=true" option by default. Which means that work would also need to be done on the analyzer side in order to understand the new CFG items and act accordingly.<br class=""><br class="">As an example of a recent CFG work i could recommend<span class="Apple-converted-space"> </span><a href="https://reviews.llvm.org/D15031" rel="noreferrer" target="_blank" class="">https://reviews.llvm.org/D1503<wbr class="">1</a><span class="Apple-converted-space"> </span>which is not related to operator new, but gives an impression of how this area of our code looks.<br class=""><br class="">* As for contacts, this mailing list is the right place to discuss what you want to do, and our phabricator (<a href="http://reviews.llvm.org/" rel="noreferrer" target="_blank" class="">reviews.llvm.org</a>) is the right place to publish your patches. I've also CC'd the analyzer's code owner Anna and other potentially interested people.<div class=""><div class="gmail-h5"><br class=""><br class="">On 9/14/17 2:27 AM, Jiten Thakkar via cfe-dev wrote:<br class=""></div></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class="gmail-h5">Hi All,<br class="">I was going through open projects page (<a href="https://clang-analyzer.llvm.org/open_projects.html" rel="noreferrer" target="_blank" class="">https://clang-analyzer.llvm.o<wbr class="">rg/open_projects.html</a>) and wondering if that page is up to date or not. I found 'Explicitly model standard library functions with BodyFarm' and 'Enhance CFG to model C++ new more precisely' interesting to work on. I have some experience with LLVM API and modeling functions for verification as part of my masters project. So if anyone can let me know whom should I contact for those projects or how should I get started then it would be very helpful.<br class=""><br class="">Thanks,<br class="">Jiten<br class=""><br class=""><br class=""></div></div>______________________________<wbr class="">_________________<br class="">cfe-dev mailing list<br class=""><a href="mailto:cfe-dev@lists.llvm.org" target="_blank" class="">cfe-dev@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/cfe-dev</a></blockquote></blockquote></div></div></div></div></blockquote></div><br class=""></body></html>