Changes in directory llvm/lib/System/Win32:
DynamicLibrary.inc updated: 1.18 -> 1.19 --- Log message: Provide hook for alloca on VCPP. Patch by Scott Graham --- Diffs of the changes: (+18 -4) DynamicLibrary.inc | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) Index: llvm/lib/System/Win32/DynamicLibrary.inc diff -u llvm/lib/System/Win32/DynamicLibrary.inc:1.18 llvm/lib/System/Win32/DynamicLibrary.inc:1.19 --- llvm/lib/System/Win32/DynamicLibrary.inc:1.18 Tue Dec 19 09:24:18 2006 +++ llvm/lib/System/Win32/DynamicLibrary.inc Mon Jun 25 02:12:14 2007 @@ -88,15 +88,21 @@ } } -#ifdef __MINGW32__ +// Stack probing routines are in the support library (e.g. libgcc), but we don't +// have dynamic linking on windows. Provide a hook. +#if defined(__MINGW32__) || defined (_MSC_VER) #define EXPLICIT_SYMBOL(SYM) \ if (!strcmp(symbolName, #SYM)) return (void*)&SYM #define EXPLICIT_SYMBOL2(SYMFROM, SYMTO) \ if (!strcmp(symbolName, #SYMFROM)) return (void*)&SYMTO #define EXPLICIT_SYMBOL_DEF(SYM) \ extern "C" { extern void *SYM; } - - EXPLICIT_SYMBOL_DEF(_alloca); + + #if defined(__MINGW32__) + EXPLICIT_SYMBOL_DEF(_alloca); + #elif defined(_MSC_VER) + EXPLICIT_SYMBOL_DEF(_alloca_probe); + #endif #endif bool DynamicLibrary::LoadLibraryPermanently(const char *filename, @@ -133,7 +139,7 @@ return (void *) ptr; } -#ifdef __MINGW32__ +#if defined(__MINGW32__) { EXPLICIT_SYMBOL(_alloca); EXPLICIT_SYMBOL2(alloca, _alloca); @@ -141,6 +147,14 @@ #undef EXPLICIT_SYMBOL2 #undef EXPLICIT_SYMBOL_DEF } +#elif defined(_MSC_VER) + { + EXPLICIT_SYMBOL2(alloca, _alloca_probe); + EXPLICIT_SYMBOL2(_alloca, _alloca_probe); +#undef EXPLICIT_SYMBOL +#undef EXPLICIT_SYMBOL2 +#undef EXPLICIT_SYMBOL_DEF + } #endif return 0; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits