Hi, all. As I have already mentioned in the bug report (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80580), I performed some fuzz testing of the GIMPLE front end.
I used a technique proposed by John Regehr in his blog post http://blog.regehr.org/archives/1284 for testing C++ compilers. In short, this technique works as follows: 1. take a valid input file as a starting point (I used the GIMPLE code from the GCC test suite) 2. try to remove several tokens from the current input file in such way that the file remains valid (using CReduce) 3. repeat step 2 while possible +record all ICEs found during this process. As a result I found 46 GIMPLE source files that cause ICEs and produce distinct backtraces (see the attachment in Bugzilla). This series of patches fixes some of these ICEs. I have bootstrapped and regtested the unified patch on x86_64-pc-linux-gnu with no regressions (although, I see some noise in the tree-prof tests). The patches are intended for GCC 8. -- Regards, Mikhail Maltsev