aboutsummaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
authorBen Elliston <bje@au.ibm.com>2009-11-30 10:19:20 +0000
committerBen Elliston <bje@gcc.gnu.org>2009-11-30 21:19:20 +1100
commit2fc5ecb5a8bb3ebc7fad471a0dbd40939c6885e0 (patch)
treef00f0324fb3168635e4416794446e29c58bfb4f6 /boehm-gc
parent0761b46075f1c53a0fc01292b1956dd95137e18e (diff)
downloadgcc-2fc5ecb5a8bb3ebc7fad471a0dbd40939c6885e0.zip
gcc-2fc5ecb5a8bb3ebc7fad471a0dbd40939c6885e0.tar.gz
gcc-2fc5ecb5a8bb3ebc7fad471a0dbd40939c6885e0.tar.bz2
mark_rts.c (GC_approx_sp): Use __builtin_frame_address when compiling with GCC rather than taking the...
* mark_rts.c (GC_approx_sp): Use __builtin_frame_address when compiling with GCC rather than taking the address of a local variable. From-SVN: r154771
Diffstat (limited to 'boehm-gc')
-rw-r--r--boehm-gc/ChangeLog6
-rw-r--r--boehm-gc/mark_rts.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 5b615d9..03e5158 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,5 +1,11 @@
2009-11-30 Ben Elliston <bje@au.ibm.com>
+ * mark_rts.c (GC_approx_sp): Use __builtin_frame_address when
+ compiling with GCC rather than taking the address of a local
+ variable.
+
+2009-11-30 Ben Elliston <bje@au.ibm.com>
+
* os_dep.c: Use the POSIX signal API in preference to the BSD API.
Generate a compilation error if neither the POSIX nor BSD APIs can
be detected.
diff --git a/boehm-gc/mark_rts.c b/boehm-gc/mark_rts.c
index 4074879..7a9fb8f 100644
--- a/boehm-gc/mark_rts.c
+++ b/boehm-gc/mark_rts.c
@@ -376,7 +376,13 @@ ptr_t GC_approx_sp()
# ifdef _MSC_VER
# pragma warning(disable:4172)
# endif
- return((ptr_t)(&dummy));
+#ifdef __GNUC__
+ /* Eliminate a warning from GCC about taking the address of a
+ local variable. */
+ return __builtin_frame_address (0);
+#else
+ return ((ptr_t)(&dummy));
+#endif /* __GNUC__ */
# ifdef _MSC_VER
# pragma warning(default:4172)
# endif