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

           Summary: [4.6.0 regression] ce3 moves dereference before
                    implied non-NULL test
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: aol...@gcc.gnu.org
            Target: i686-pc-linux-gnu


Created attachment 23138
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23138
Compile with -O2 -m32 on i686-pc-linux-gnu, run to crash

I simplified this testcase from a FOR_EACH_LOCAL_DECL loop I introduced as part
of an attempt to fix the latent problem that remained from bug 47106, after the
reversal that fixed bug 47402.

ce3 regards the memory reference as safe, for it's marked as non-trapping
(which is true, since it's guarded by the test), and then it decides to move it
ahead of the test that made it safe in the first place.

This is a regression, it works with 4.5.

Reply via email to