[MPlayer-users] [BUGREPORT] VP6 / NSV

Martin Simmons vyslnqaaxytp at spammotel.com
Mon Sep 13 01:16:52 CEST 2004


>>>>> On Mon, 13 Sep 2004 00:11:05 +0200, Reimar Döffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> said:

  >> The problem is that extend_stack_for_dll_alloca() gets inlined into
  >> PE_InitDLL(), so the extended stack space is still *above* esp when the DLL
  >> entrypoint is called:

  Reimar> Thanks very much.
  Reimar> According to the docs this shouldn't happen:
  Reimar> http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Inline.html#Inline:
  Reimar> Note that certain usages in a function definition can make it unsuitable 
  Reimar> for inline substitution. Among these usages are: use of varargs, use of 
  Reimar> alloca, use of variable sized data types

  Reimar> So this actually _is_ a compiler bug, although your fix (best together 
  Reimar> with mine to make sure) should be applied.

Maybe a documentation bug...when it says "can make it unsuitable" I assume it
means "we've not made the compiler smart enough yet".  It looks like they have
now :-)

Even with the noinline attribute, a sufficiently smart compiler should
eliminate the alloca() and store.  It probably needs __asm code to be certain
that it will not be eliminated.

__Martin




More information about the MPlayer-users mailing list