Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / libgc / mark_rts.c
index 55eb5d5433953dd860281be12e0d9c90205f9ec9..561333ab04d672ca249142e11a2b77654adbee38 100644 (file)
@@ -368,8 +368,14 @@ ptr_t p;
 
 ptr_t GC_approx_sp()
 {
-    word dummy;
-
+#if defined(__GNUC__)
+    return __builtin_frame_address(0);
+#else
+    VOLATILE word dummy;
+
+    dummy = 42;        /* Force stack to grow if necessary.    Otherwise the   */
+               /* later accesses might cause the kernel to think we're */
+               /* doing something wrong.                               */
 #   ifdef _MSC_VER
 #     pragma warning(disable:4172)
 #   endif
@@ -377,6 +383,7 @@ ptr_t GC_approx_sp()
 #   ifdef _MSC_VER
 #     pragma warning(default:4172)
 #   endif
+#endif  // __GNUC__
 }
 
 /*