------- Comment #12 from pinskia at gcc dot gnu dot org 2006-11-12 02:20 ------- _gfortran_set_std (70, 127, 0); D.1015 = &C.992; D.1016 = *D.1014; if (D.1016 == 0) goto <L0>; else goto <L1>; D.1014 = (char *) D.1015;
The order of the BB when inlining is just bogus. Honza, could you look into this bug? It is correct before inling: <bb 2>: D.995 = (char *) &C.992; D.996 = *D.995; if (D.996 == 0) goto <L0>; else goto <L1>; Oh, maybe it is still the regimplification of (char*)&C.992 which is causing this, &C.992 should be still considered an invarient. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26994