------- Comment #8 from sebastian dot huber at embedded-brains dot de 2010-05-12 12:03 ------- A summary follows. Broken means bdbuf.i generates an invalid stack frame usage sequence in a function epilogue. Works means that the corresponding area is valid.
Flags: -march=armv5t -mthumb -Os Broken: GCC 4.3.2 20080827 GCC 4.4.4 20100429 GCC 4.5.0 20100414 Works: GCC 4.2.4 Flags: -march=armv7 -mthumb -Os Works: GCC 4.5.0 20100414 Flags: -march=armv5t -mthumb -O2 Suspicious: GCC 4.5.0 20100414 Suspicious means that the epilogue sequence is this: .L577: mov sp, r7 add sp, sp, #36 mov r0, r4 /* * Here we don't have a problem since r0 comes from r4 * and not from the stack frame. Is this always the case? */ @ sp needed for prologue pop {r2, r3, r4, r5} mov r8, r2 mov r9, r3 mov sl, r4 mov fp, r5 pop {r4, r5, r6, r7, pc} -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44091