From 40e1870db5a695a32b3cda7fe5d7f8781a2f4839 Mon Sep 17 00:00:00 2001 From: reimar Date: Sat, 18 Sep 2004 09:10:47 +0000 Subject: force compilers not to optimize/inline extend_stack_for_dll_alloca git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13376 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/pe_image.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'loader/pe_image.c') diff --git a/loader/pe_image.c b/loader/pe_image.c index 9ac40ebeb2..117217127f 100644 --- a/loader/pe_image.c +++ b/loader/pe_image.c @@ -895,12 +895,14 @@ void PE_UnloadLibrary(WINE_MODREF *wm) * memory below %esp; it segfaults. * The extend_stack_for_dll_alloca() routine just preallocates a big chunk * of memory on the stack, for use by the DLLs alloca routine. + * Added the noinline attribute as e.g. gcc 3.2.2 inlines this function + * in a way that breaks it. */ -static void extend_stack_for_dll_alloca(void) +static void __attribute__((noinline)) extend_stack_for_dll_alloca(void) { #ifndef __FreeBSD__ - void* mem=alloca(0x20000); - *(int*)mem=0x1234; + volatile int* mem=alloca(0x20000); + *mem=0x1234; #endif } -- cgit v1.2.3