http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60438
Bug ID: 60438 Summary: dwarf2cfi :2239 still assert,not the same cause as PR 59575 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: manjian2006 at gmail dot com This Bug is cause by csa pass.Which removes REG_ARGS_SIZE unexpectedly. Let me show the cfg first: 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) \ / \ / \ / add 16,%esp After the csa pass ,push edx's REG_ARGS_SIZE has gone. And that further causes the assertion in dwarf2cfi.c:2339: /* We ought to have the same state incoming to a given trace no matter how we arrive at the trace. Anything else means we've got some kind of optimization error. */ gcc_checking_assert (cfi_row_equal_p (cur_row, ti->beg_row)); gcc is configured as : --target=i686-linux-android --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-sjlj-exceptions --disable-tls --disable-libitm --with-arch=i686 --with-tune=atom --with-fpmath=sse --enable-initfini-array --disable-nls --with-sysroot=/home/linzj/android-ndk-r8e/platforms/android-9/arch-x86 --disable-bootstrap --disable-libquadmath --enable-plugins --enable-libgomp --enable-gold --enable-graphite=yes --program-transform-name='s&^&i686-linux-android-&' --enable-gold=default --disable-libcilkrts : (reconfigured) ../building/configure --target=i686-linux-android --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-sjlj-exceptions --disable-tls --disable-libitm --with-arch=i686 --with-tune=atom --with-fpmath=sse --enable-initfini-array --disable-nls --with-sysroot=/home/linzj/android-ndk-r8e/platforms/android-9/arch-x86 --disable-bootstrap --disable-libquadmath --enable-plugins --enable-libgomp --enable-gold --enable-graphite=yes --program-transform-name='s&^&i686-linux-android-&' --enable-gold=default --disable-libcilkrts compile args: -ffunction-sections -funwind-tables -no-canonical-prefixes -fstack-protector -fno-exceptions -fno-rtti -O2 -g -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300 -gdwarf-2 -funwind-tables -fno-pic -fPIC -fno-stack-protector -fvisibility=hidden -gdwarf-2 -funwind-tables -fno-pic -fPIC -fno-stack-protector -fvisibility=hidden -fvisibility-inlines-hidden -Wa,--noexecstack -Os -Wreturn-type -Wuninitialized -c