projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #5668 from kumpera/wasm-work-p4
[mono.git]
/
libgc
/
mark_rts.c
diff --git
a/libgc/mark_rts.c
b/libgc/mark_rts.c
index b3e996a29c2d51645a8cd9374ff53194dad84e7d..561333ab04d672ca249142e11a2b77654adbee38 100644
(file)
--- a/
libgc/mark_rts.c
+++ b/
libgc/mark_rts.c
@@
-368,6
+368,9
@@
ptr_t p;
ptr_t GC_approx_sp()
{
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 */
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)
/* 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));
# 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
# ifdef _MSC_VER
# pragma warning(default:4172)
# endif
+#endif // __GNUC__
}
/*
}
/*