On Sun, Apr 11, 2021 at 12:14 AM David Malcolm <dmalc...@redhat.com> wrote:
> On Sat, 2021-04-10 at 21:18 +0530, Saloni Garg wrote: > > On Thu, Apr 8, 2021 at 8:19 AM David Malcolm <dmalc...@redhat.com> > > wrote: > > > > > On Wed, 2021-04-07 at 01:59 +0530, Saloni Garg wrote: > > [...] > > > > Looking at: > > > https://gcc.gnu.org/wiki/SummerOfCode#Application > > > we don't have a specific format to be followed. > > > > > > That said, I saw this > > > https://google.github.io/gsocguides/student/writing-a-proposal > > > which seems to have useful advice to prospective GSoC students. In > > > particular, the "Elements of a Quality Proposal" lists various > > > things > > > that in your current draft are missing, and which would strengthen > > > your > > > proposal. So I'd recommend that you (and other prospective GSoC > > > candidates) have a look at that. > > > > > Added some new sections. Tried to explain them as well. There are > > some > > things I am not clear about, so explicitly mentioned them and will > > add the > > relevant explanations and present them in the later reports. Please > > let me > > know if this sounds good to you and provide feedback as well. > > The updated version looks a lot stronger. > Hi, Thanks for the quick feedback. > > That said, you haven't given details of your programming expertise - in > particular this project will require proficiency with C++, so a good > application would give evidence to the reader that you're already up- > to-speed on writing and debugging C++ (see the "Biographical > Information" section in the guide I linked to above for more info). > Apologies, but I am a beginner in this area of compilers and static analysis. I already know some C++ coding which I have used mostly in Competitive coding competitions. I have been following this( https://www.cse.iitk.ac.in/users/karkare/Courses/cs618/) course to understand the nuances of the static analysis. I am confident that I can write the C++ code that is required here and know how to use tools like GDB, Valgrind to debug the C++ codes, but I don't have any good projects to prove that right now. My college got stopped due to COVID-19 and hasn't started yet properly, so I have been trying to learn most of the things online only. I hope you understand. - Saloni > [...snip...] > > > > FWIW please don't create a top-level function called "free" that > > > isn't > > > the C stdlib's free, it's confusing! > > > > > Sorry, my bad renamed it to `myfree`. > > Thanks! > > > > > > > > int main() > > > > { > > > > try { > > > > p = alloc(); > > > > free(); > > > > } catch(...) { > > > > } > > > > return 0; > > > > } > > > > Please, have a look here (https://godbolt.org/z/8WvoaP67n). I > > > > believe > > > > it is > > > > a false positive, I am not sure, please confirm. > > > > > > It looks like one to me. I had a look at -fdump-analyzer-exploded- > > > graph and the false positive seems to be associated with the edge > > > with > > > the EH flag (to the catch handler). > > > > > I have understood the exploded graph but not able to understand the > > `EH > > flag` point you are making, so I will get back to you on this. > > Edges in control flow graphs can have flags; see the various > DEF_EDGE_FLAG in gcc/cfg-flags.def in the source tree, and in > particular the "EH" flag. > > These flags are visible in the analyzer's supergraph - they should > appear in the .dot dump files from the analyzer - so sometimes they're > difficult to see, depending on how GraphViz lays things out. (FWIW I > use: > https://github.com/jrfonseca/xdot.py > to view the .dot files; it's fast and convenient) > > [...snip...] > > > > > > > > > > > > > Currently the analyzer has a "brute force" approach to > > > interprocedural > > > analysis, and attempts to simulate the calls and returns in a > > > fairly > > > direct way. It's crude (and has exponential growth), but is > > > reasonably > > > simple conceptually (or at least I think so). The analyzer > > > implements > > > setjmp/longjmp in a similar way, and exception-handling could be > > > based > > > on that code. > > > > > Going through that already and your comments at the start of every > > data > > structure defined are really helpful. > > Thanks! > > > > [...snip...] > > Dave > >