------- Comment #3 from matz at gcc dot gnu dot org 2010-02-18 16:12 ------- At least varb isn't printed in fn3, because dse2 (after prologue_epilogue) makes the expressions in the debug_insn be (clobber 0). Presumably because frame elimination rewrites the address-takings, but not the debug instructions, hence it thinks they are uninited stores, as they still refer to the frame pointer, not the stack pointer.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43077