Placing DO_NOT_FOLD() before abort() only works in -O2 but not in -Os which continues to place only 5 calls to abort() in h3.o for call places. The approach taken here is to replace abort() with a new function that wraps it and stores the line number in the stack. This slightly increases the code size (+0.1%) but when unwinding a crash, the line number remains present now. This is a very low cost, especially if we consider that DEBUG_USE_ABORT is almost only used by code coverage tools and occasional debugging sessions.