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

           Summary: ICE with -ftree-parallelize-loops: "address taken, but
                    ADDRESSABLE bit not set"
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: arthur.j.odw...@gmail.com


Created attachment 24894
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24894
Output of "ajo-gcc -O3 -ftree-parallelize-loops=2 -std=c99 -c test.c -v"

This failure reproduces for me with svn revision 177081 (2011-08-02), and also
with gcc 4.5.1. I'm on Ubuntu 10.10, x86-64 (-march=amdfam10).

cat >test.c <<EOF
extern int ej, *ep;
int func_40() {
    int l_48, l_327 = 8;
    if (ej <= 7) {
        int *l_335[8];
        for (int i = 0; i < 8; ++i)
          l_335[i] = &l_48;
        while (--l_327) {
            ej = 0;
            ep = l_335[0];
        }
        return 0;
    }
    return (ep == &l_327);
}
EOF
gcc -O3 -ftree-parallelize-loops=2 -std=c99 -c test.c

test.c: In function ‘func_40’:
test.c:13:5: error: address taken, but ADDRESSABLE bit not set
l_48
cc1: note: in statement
vect_cst_.15_1 = {&l_48, &l_48};
test.c:13:5: internal compiler error: verify_gimple failed

With gcc 4.5.1, I get this ICE instead. Bug 28233 might be related:

test.c: In function ‘func_40’:
test.c:18:22: internal compiler error: in make_decl_rtl, at varasm.c:1347


This test case is reduced from the output of Csmith 2.1.0 (git hash 210eda7,
https://github.com/Quuxplusone/csmith/), using the following command line:
csmith --no-paranoid --no-longlong --pointers --arrays --jumps --no-consts
--no-volatiles --no-checksum --divs --muls --bitfields --no-packed-struct -s
955105426

Reply via email to