+#define _msg_helper(type, msg, x...) do { \
+ fprintf(stderr, "Disassembler " type \
+ ":\n " msg "\n" ,##x); \
+ } while (0)
+
+#define dasm_error(msg, x...) do { \
+ _msg_helper("ERROR", msg ,##x); \
+ exit(1); \
+ } while (0)
+
+#define dasm_int_error(msg, x...) \
+ dasm_error("Internal error (bug): " msg ,##x)
+
+#define dasm_warn(msg, x...) \
+ _msg_helper("warning", msg ,##x)
+
+#define asm_info(msg, x...) \
+ _msg_helper("info", msg ,##x)
+