diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2022-08-10 18:07:52 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2022-08-10 19:05:12 +0300 |
commit | afa71179992e704734ff8aa5da1a3e02b8cdcd27 (patch) | |
tree | 0ff118194ddd2508912da60b98cf0b33d99811d0 /winsup | |
parent | 5851a633bd9fe45a60b180f4d0b89fda90f34972 (diff) |
Cygwin: move __caller_return_address to mm/malloc_wrapper.cc
It's used in this file only anyway, so make it static inline.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/local_includes/miscfuncs.h | 4 | ||||
-rw-r--r-- | winsup/cygwin/miscfuncs.cc | 13 | ||||
-rw-r--r-- | winsup/cygwin/mm/malloc_wrapper.cc | 17 |
3 files changed, 17 insertions, 17 deletions
diff --git a/winsup/cygwin/local_includes/miscfuncs.h b/winsup/cygwin/local_includes/miscfuncs.h index 947b52c2c..706b7a62b 100644 --- a/winsup/cygwin/local_includes/miscfuncs.h +++ b/winsup/cygwin/local_includes/miscfuncs.h @@ -77,10 +77,6 @@ public: extern "C" void yield (); -#define caller_return_address() \ - __caller_return_address (__builtin_return_address (0)) -void * __caller_return_address (void *); - void backslashify (const char *, char *, bool); void slashify (const char *, char *, bool); #define isslash(c) ((c) == '/') diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc index 0af2e0217..6453fa047 100644 --- a/winsup/cygwin/miscfuncs.cc +++ b/winsup/cygwin/miscfuncs.cc @@ -315,19 +315,6 @@ NT_readline::gets () } } -/* Helper function to generate the correct caller address. For external - calls, the return address on the stack is _sigbe. In that case the - actual caller return address is on the cygtls stack. Use this function - via the macro caller_return_address. */ -extern "C" void _sigbe (); - -void * -__caller_return_address (void *builtin_ret_addr) -{ - return builtin_ret_addr == &_sigbe - ? (void *) _my_tls.retaddr () : builtin_ret_addr; -} - /* CygwinCreateThread. Replacement function for CreateThread. What we do here is to remove diff --git a/winsup/cygwin/mm/malloc_wrapper.cc b/winsup/cygwin/mm/malloc_wrapper.cc index 5af39d361..8d12eb637 100644 --- a/winsup/cygwin/mm/malloc_wrapper.cc +++ b/winsup/cygwin/mm/malloc_wrapper.cc @@ -27,6 +27,23 @@ extern "C" struct mallinfo dlmallinfo (); static bool use_internal = true; static bool internal_malloc_determined; +/* Helper function to generate the correct caller address. For external + calls, the return address on the stack is _sigbe. In that case the + actual caller return address is on the cygtls stack. Use this function + via the macro caller_return_address. */ +extern "C" void _sigbe (); + +static inline void * +__caller_return_address (void *builtin_ret_addr) +{ + return builtin_ret_addr == &_sigbe + ? (void *) _my_tls.retaddr () : builtin_ret_addr; +} + +#define caller_return_address() \ + __caller_return_address (__builtin_return_address (0)) +void * __caller_return_address (void *); + /* Return an address from the import jmp table of main program. */ static inline void * import_address (void *imp) |