#include <unistd.h> #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) #define CURRENT_LOCATION __FILE__ ":" TOSTRING(__LINE__) #define err() \ { \ _fail("at " CURRENT_LOCATION " "); \ } #define mb() asm volatile ("" : : : "memory") extern void pass(void); extern void _fail(char *reason);