From: David Malcolm Date: Tue, 10 Mar 2020 22:50:03 +0000 (-0400) Subject: analyzer: add test coverage for fixed ICE [PR94047] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f665beeba625490bd96a593d23e00726d969cf98;p=gcc.git analyzer: add test coverage for fixed ICE [PR94047] PR analyzer/94047 reports an ICE, which turned out to be caused by the erroneous use of TREE_TYPE on the view region's type in region_model::get_representative_path_var that I introduced in r10-7024-ge516294a1acb28aaaad44cfd583cc6a80354044e and fixed in g:787477a226033e36be3f6d16b71be13dd917e982. This patch adds a regression test for the ICE. gcc/testsuite/ChangeLog: PR analyzer/94047 * gcc.dg/analyzer/pr94047.c: New test. --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4aa798f8a48..a91d7377888 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-18 David Malcolm + + PR analyzer/94047 + * gcc.dg/analyzer/pr94047.c: New test. + 2020-03-18 Richard Biener PR middle-end/94206 diff --git a/gcc/testsuite/gcc.dg/analyzer/pr94047.c b/gcc/testsuite/gcc.dg/analyzer/pr94047.c new file mode 100644 index 00000000000..d989a254c9e --- /dev/null +++ b/gcc/testsuite/gcc.dg/analyzer/pr94047.c @@ -0,0 +1,23 @@ +/* { dg-additional-options "-Wno-analyzer-too-complex" } */ +/* TODO: the above ought not to be necessary, but currently is due to a + state explosion within the for loop. */ + +typedef struct list +{ + struct list *next; +} tlist; + +void +bar (struct list *l) +{ + l->next = l->next->next; +} + +void +foo (void) +{ + struct list l; + tlist t = l; + for (;;) + bar (&t); +}