abort() will always abort the program instead of silently ignoring the error when built with -DNDEBUG
abort()
-DNDEBUG