OSDN Git Service

* mark_rts.c (GC_approx_sp): Use __builtin_frame_address when
authorbje <bje@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Nov 2009 10:19:20 +0000 (10:19 +0000)
committerbje <bje@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Nov 2009 10:19:20 +0000 (10:19 +0000)
compiling with GCC rather than taking the address of a local
variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154771 138bc75d-0d04-0410-961f-82ee72b054a4

boehm-gc/ChangeLog
boehm-gc/mark_rts.c

index 5b615d9..03e5158 100644 (file)
@@ -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.
index 4074879..7a9fb8f 100644 (file)
@@ -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