Hi,
I have found a crash when compiling,and have narrowed the bug scope
in the csa pass.But I am not quite familar with that.Please help.
Cause:
if (hasRelativeWidth || hasRelativeHeight)
true false
/ \
/ \
/ \
... ...
call availableWidth() call size() this function returns a
structure,which matches "call_pop"
.cfa_offset 96 .cfa_offset 92
\ push edx (should has a REG_ARGS_SIZE 16 here,
\ but csa eliminates it)
\ (inlined functions are expanded here)
\ /
\ /
\ /
(should all be cfa_offset 96)
add 16,%esp
As the cfg above described,both branches should be end with cfa offset
96,but one branch is end with 92.
That will case assertion failure in dwarf2cfi.c:2339,which asserts that
all the branches should have the same cfa offset when coming to the
joint.
--
Regards
lin zuojian