------- Comment #6 from pinskia at gcc dot gnu dot org 2005-10-06 16:17 ------- This is a PRE bug as far as I can tell. The diff between reassoc and PRE: <bb 1>: theTempManager_86 = theTemp$m_memoryManager_265(ab); # VUSE <SFT.15_91>; D.1851_87 = theTemp.m_memoryManager; theTemp$m_memoryManager_268(ab) = D.1851_87; # SFT.15_213 = V_MUST_DEF <SFT.15_91>; theTemp.m_memoryManager = theTempManager_86; # SFT.14_214 = V_MUST_DEF <SFT.14_94>; theTemp.m_size = 0; - # VUSE <SFT.15_213>; - D.1852_90 = theTemp.m_memoryManager; + D.1852_90 = theTemp$m_memoryManager_265(ab); # VUSE <SFT.14_214>; # VUSE <SFT.15_213>; D.1853_92 = D.1852_90->_vptr$MemoryManager; # VUSE <SFT.14_214>; # VUSE <SFT.15_213>; D.1854_93 = *D.1853_92; # SFT.14_215(ab) = V_MAY_DEF <SFT.14_214>; # SFT.15_216(ab) = V_MAY_DEF <SFT.15_213>; OBJ_TYPE_REF(D.1854_93;D.1852_90->0) (D.1852_90); goto <bb 3> (<L47>);
Notice how both theTemp$m_memoryManager_265 and theTemp$m_memoryManager_268 are alive. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dberlin at gcc dot gnu dot | |org GCC target triplet| |powerpc-*-* Known to fail|4.1.0 | Known to work|3.3.2 4.0.2 |3.3.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24231