Hi, I have found the cause: Okay let me sum it up: at first the code looks like this call xxx: .cfa 92 float ops add sp 12 .cfa 80
And then split2 splits the float ops,then it looks like this call xxx: .cfa 92 push edx float ops2 add sp 4 ... add sp 12 .cfa 80 Note that the split code has a sp ops but no cfa notes. And then cfa feels that's ugly,it changes the code to call xxx : .cfa 92 push edx float ops2 ... add sp 16 .cfa 80 And then jump2 finds another branch also has an "add sp 16 .cfa 80",so the combination has occurred: call xxx :.cfa 92 push edx float ops2 ... label jump_from_other_branch ( (hasRelativeWidth || hasRelativeHeight) == true ) add sp 16 .cfa 80 then dwarf2cfi.c will first find the "add sp 16 .cfa 80" row has cfa 92 coming first,and then cfa 96. Anybody has any comment to fix it? -- Regards lin zuojian