------- Comment #6 from r dot emrich at de dot tecosim dot com 2009-01-28 14:45 ------- (In reply to comment #3) > We need the preprocessed source of a *complete* (including main) program to be > able to reproduce this. >
That's a little bit difficult here. It's a really large application. But what I see from the assembler source is the following. The spnapshot produces: .globl __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_ .def __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_; .scl 2; .type 32; .endef __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_: subq $8, %rsp xorpd %xmm3, %xmm3 . . . L15: addq $8, %rsp ret here the function returns. trunk produces: .globl __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_ .def __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_; .scl 2; .type 32; .endef __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_: subq $88, %rsp xorpd %xmm3, %xmm3 . . . movsd %xmm8, (%rax) ret This looks like the stackpointer is no restored. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39002