Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / libgc / mark_rts.c
index b3e996a29c2d51645a8cd9374ff53194dad84e7d..561333ab04d672ca249142e11a2b77654adbee38 100644 (file)
@@ -368,6 +368,9 @@ ptr_t p;
 
 ptr_t GC_approx_sp()
 {
+#if defined(__GNUC__)
+    return __builtin_frame_address(0);
+#else
     VOLATILE word dummy;
 
     dummy = 42;        /* Force stack to grow if necessary.    Otherwise the   */
@@ -375,18 +378,12 @@ ptr_t GC_approx_sp()
                /* 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
+#endif  // __GNUC__
 }
 
 /*