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

Reply via email to