Fix typo in bf703c4a8f95db4859452474499038c7539ea3c7.
[mono.git] / libgc / mark_rts.c
index 55eb5d5433953dd860281be12e0d9c90205f9ec9..b3e996a29c2d51645a8cd9374ff53194dad84e7d 100644 (file)
@@ -368,12 +368,22 @@ ptr_t p;
 
 ptr_t GC_approx_sp()
 {
-    word dummy;
+    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
+#   if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 408)
+#     pragma GCC diagnostic push
+#     pragma GCC diagnostic ignored "-Wreturn-local-addr"
 #   endif
     return((ptr_t)(&dummy));
+#   if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 408)
+#      pragma GCC diagnostic pop
+#   endif
 #   ifdef _MSC_VER
 #     pragma warning(default:4172)
 #   endif