------- Comment #18 from ramana at gcc dot gnu dot org 2010-04-16 07:46 ------- Looking at more dumps this morning with the testcase and you can see that in the not working case all the "tmp" variables aren't marked as being call-clobbered.
Alias information for set_integer Aliased symbols tmp, UID D.1276, GFC_INTEGER_8, is addressable tmp, UID D.1279, GFC_INTEGER_4, is addressable .MEM, UID D.2024, void, is global, call clobbered, default def: .MEM_11(D) tmp, UID D.1281, GFC_INTEGER_2, is addressable tmp, UID D.1283, GFC_INTEGER_1, is addressable whereas in the case that it was working - Alias information for set_integer Aliased symbols tmp, UID D.1276, GFC_INTEGER_8, is addressable, call clobbered tmp, UID D.1279, GFC_INTEGER_4, is addressable, call clobbered .MEM, UID D.2024, void, is global, call clobbered, default def: .MEM_11(D) tmp, UID D.1281, GFC_INTEGER_2, is addressable, call clobbered tmp, UID D.1283, GFC_INTEGER_1, is addressable, call clobbered -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43572