From: bje Date: Mon, 30 Nov 2009 10:19:20 +0000 (+0000) Subject: * mark_rts.c (GC_approx_sp): Use __builtin_frame_address when X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a2d350d6a666c0d11b6289cce593f9c25c1cb42;p=gc * mark_rts.c (GC_approx_sp): Use __builtin_frame_address when 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 --- diff --git a/ChangeLog b/ChangeLog index 5b615d95..03e51589 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-11-30 Ben Elliston + + * 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 * os_dep.c: Use the POSIX signal API in preference to the BSD API. diff --git a/mark_rts.c b/mark_rts.c index 4074879a..7a9fb8f2 100644 --- a/mark_rts.c +++ b/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