the following function does not setup a stackframe. It is only visible in the generated assembler code.
good: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 83 ec 10 sub $0x10,%esp 6: 8b 45 08 mov 0x8(%ebp),%eax 9: 8d 55 fc lea 0xfffffffc(%ebp),%edx ... currently: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 8b 45 08 mov 0x8(%ebp),%eax 6: 8d 55 fc lea 0xfffffffc(%ebp),%edx 9: 89 45 fc mov %eax,0xfffffffc(%ebp) ... Note the lack of the sub $0x10,$esp This seems to have been caused by the dataflow merge, my regression hunt against TRUNK is currently between 125600 and 125612. -- Summary: function with asm() does not setup stack frame Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: marcus at jet dot franken dot de GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32475