X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b741bb048b44a04d99689f6b64cf6628f15e550a..b37037e5e2125306aa1c5472c9171cda0791cca0:/src/kernel/context/context_private.hpp diff --git a/src/kernel/context/context_private.hpp b/src/kernel/context/context_private.hpp index 8a47f56e00..0bf2a78b0f 100644 --- a/src/kernel/context/context_private.hpp +++ b/src/kernel/context/context_private.hpp @@ -20,4 +20,14 @@ #define ASAN_FINISH_SWITCH(fake_stack_save, bottom_old, size_old) (void)0 #endif +/* We are using the bottom of the stack to save some information, like the + * valgrind_stack_id. Define smx_context_usable_stack_size to give the remaining + * size for the stack. Round its value to a multiple of 16 (asan wants the stacks to be aligned this way). */ +#if HAVE_VALGRIND_H +#define smx_context_usable_stack_size \ + ((smx_context_stack_size - sizeof(unsigned int)) & ~0xf) /* for valgrind_stack_id */ +#else +#define smx_context_usable_stack_size (smx_context_stack_size & ~0xf) +#endif + #endif