http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56448



             Bug #: 56448

           Summary: cc1 hangs on volatile array with -O or above

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: tree-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: dhaze...@yahoo.com





The following snippet (reduced from a larger test case) causes top-of-trunk cc1

to hang (infinite loop) on x86_64-linux using -O or above.  This is a

regression from 4.7.2 which does not have this issue.



$ cat volatile.c

volatile int a[1];

int b;

void fn1 ()

{

    for (;;)

    {

        int *c[3][6] =

        { 0, 0, 0, &b, 0, 0, 0, 0, &b, 0, 0, 0, 0, 0, 0, 0, &b, (int *)&a[0] };

        b = *c[2][5];

    }

}

$ gcc-trunk --version

gcc-trunk (GCC) 4.8.0 20130225 (experimental) [trunk revision 196255]

$ gcc-4.7 -O -c volatile.c

$ gcc-trunk -c volatile.c

$ gcc-trunk -O -c volatile.c

<hangs>

Reply via email to