--- /dev/null
+#ifndef __FAIL_H_
+#define __FAIL_H_
+
+#define TOSTRING_HELPER(x) #x
+#define TOSTRING(x) TOSTRING_HELPER(x)
+
+#define PERFINDEX_FAILURE -1
+#define PERFINDEX_SUCCESS 0
+
+extern char* error_str;
+
+#define FAIL(message) do {\
+ error_str = message " at " __FILE__ ": " TOSTRING(__LINE__);\
+ return PERFINDEX_FAILURE;\
+} while(0)
+
+#define VERIFY(condition, fail_message) do {\
+ if(!(condition)) FAIL(fail_message);\
+} while(0)
+
+#endif