(Includes reverting part of commit
b2345fb)
* include/gc_mark.h (GC_clear_stack): New API function.
* include/private/gc_priv.h (GC_clear_stack): Remove declaration.
* misc.c (GC_clear_stack): Replace GC_INNER with GC_API; add GC_CALL
calling conventions modifier.
/* to be used when printing objects */
/* of a particular kind. */
+/* Clear some of the inaccessible part of the stack. Returns its */
+/* argument, so it can be used in a tail call position, hence clearing */
+/* another frame. Argument may be NULL. */
+GC_API void * GC_CALL GC_clear_stack(void *);
+
/* Set and get the client notifier on collections. The client function */
/* is called at the start of every full GC (called with the allocation */
/* lock held). May be 0. This is a really tricky interface to use */
/* free list nonempty, and return its */
/* head. Sz is in granules. */
-GC_INNER void * GC_clear_stack(void *);
- /* in misc.c, behaves like identity. */
-
#ifdef GC_ADD_CALLER
# define GC_DBG_RA GC_RETURN_ADDR,
#else
/* Clear some of the inaccessible part of the stack. Returns its */
/* argument, so it can be used in a tail call position, hence clearing */
/* another frame. */
-GC_INNER void * GC_clear_stack(void *arg)
+GC_API void * GC_CALL GC_clear_stack(void *arg)
{
ptr_t sp = GC_approx_sp(); /* Hotter than actual sp */
# ifdef THREADS