Hello Shubham, On Sun, Feb 10 2019, Shubham Narlawar wrote: > Hi, > > I am Shubham Narlawar. Currently, I am a Computer Engineering undergrad > student at Pune University, India. I am interested in contributing to GCC > for GSOC 2019. > > We have done a project from GCC GSOC 2018 idea list which is implementing > Csmith fuzzer leveraging GCC C Extensions under the guidance of Andi Kleen. > > Csmith is a C fuzzer which generates standard C code but no extensions. We > implemented few of GCC C extensions in Csmith (which now we call it as > "Extended Csmith"). Extended Csmith is now able to fuzz extensions along > with standard C code. > > Following GCC C Extensions are implemented in Csmith currently - > 1. Labels as Values (Computed Goto) > 2. Local Labels > 3. Typeof > 4. __int128 - Signed and unsigned integer of size 128 bits. > 5. Cast to Union > 6. Label attributes - hot cold > 7. Variable attributes - a) aligned > b) unused > c) section > 8. Binary constants > 9. Statement Expression > > 10. Transactional memory relaxed - tm_relaxed (not a GCC C extension) > > Note - Different Combinations of these extensions can be used while > generating random C code using extended csmith. > > Here is the github link of the project. > https://github.com/Sameeranjoshi/csmith/tree/gcc-extensions > > Currently, We are running extended csmith on gcc10 of GCC Compile Farm > Project and found following bugs - > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89135 > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89153 > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87118 > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89223 > > We expect to find more bugs in GCC as the gcc compiler is being stress > tested now. > > Code coverage - Csmith vs Extended Csmith > > Csmith i.e. [without gcc extn ] > line - 35.2 > function - 43.2 > branch - 25.7 > > Extended Csmith [with gcc extn] > line - 35.7 > function - 43.9 > branch - 26.1 > > %gain > line - 0.5% > function - 0.7% > branch - 0.4% > > For GSOC 2019, I am proposing below project idea - > > Implementation of following extensions in the Csmith - > 1. Function attributes - aligned, alloc_align, always_inline, hot, cold, > deprecated, nothrow, used, etc > 2. Vector extensions > 3. Transactional Memory extensions > 4. Type attributes > and remaining GCC C extensions. > > Benefits to GCC - > 1. Increased code coverage. > 2. There is a possibility of finding more bugs after adding the above > extensions. >
Thank you very much for sending us your project idea. I have noted it down and am looking forward to your project submission (assuming Google approves us as a participating organization, of course). Meanwhile, if you have any technical questions, regarding the GCC extensions you listed above, feel free to ask here on the list. Thank you, Martin