[Liboil-commit] testsuite/stack_align.c
David Schleef
ds at kemper.freedesktop.org
Mon Jun 30 17:02:15 PDT 2008
testsuite/stack_align.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
New commits:
commit 60d8cb0e9b77509dffcb7b40da48cd931710a130
Author: David Schleef <ds at hutch.local>
Date: Mon Jun 30 17:02:12 2008 -0700
[tests] fix stack alignment test on OS/X
diff --git a/testsuite/stack_align.c b/testsuite/stack_align.c
index b2c1a69..9772332 100644
--- a/testsuite/stack_align.c
+++ b/testsuite/stack_align.c
@@ -238,14 +238,14 @@ void realign(int align)
#ifdef HAVE_GCC_ASM
#ifdef HAVE_I386
__asm__ __volatile__ (
- " sub %%ebx, %%esp\n"
+ " sub %%edi, %%esp\n"
#ifdef HAVE_SYMBOL_UNDERSCORE
" call _check_class_with_alignment\n"
#else
" call check_class_with_alignment\n"
#endif
- " add %%ebx, %%esp\n"
- :: "b" (align)
+ " add %%edi, %%esp\n"
+ :: "D" (align)
);
#endif
#ifdef HAVE_AMD64
@@ -333,6 +333,13 @@ int main (int argc, char *argv[])
oil_init ();
+#ifdef __APPLE__
+ /* the dynamic loader on MacOS/X crashes if someone unaligns the stack, so it's
+ unlikely that any code gets away with doing it. Our test code doesn't get
+ away with it either, so we'll just bail out. */
+ return 0;
+#endif
+
n = oil_class_get_n_classes ();
for (i = 0; i < n; i++) {
OilFunctionClass *klass = oil_class_get_by_index(i);
More information about the Liboil-commit
mailing list