diff --git a/src/engine/function.cpp b/src/engine/function.cpp index e64521734..7c87dbb1a 100644 --- a/src/engine/function.cpp +++ b/src/engine/function.cpp @@ -313,7 +313,9 @@ struct _stack template remove_cref_t & top(int i = 0) const { + assert( ((ptrdiff_t)data) > (1<<4) ); void * data_n = reinterpret_cast*>(data) + i; + assert( ((ptrdiff_t)data_n) > (1<<4) ); return *reinterpret_cast( data_n ); } @@ -339,7 +341,10 @@ struct _stack remove_cref_t pop() { using U = remove_cref_t; - U result( top() ); + assert( ((ptrdiff_t)this) > (1<<4) ); + auto v = top(); + assert( ((ptrdiff_t)&v) > (1<<4) ); + U result = v; pop( 1 ); return result; }