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