X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fcommon%2Fdebug.c;h=6c2748052478abee1538ee1e7ebc4220e4daeff3;hb=6c1a97fd2c011beb75d9ae7f0746dd6bd22ce064;hp=37f7432c917b1b0dd7d82f65923f6179f196c062;hpb=c7b5bcc8fc514065e1815df50dccd40591d2bc8e;p=libfirm diff --git a/ir/common/debug.c b/ir/common/debug.c index 37f7432c9..6c2748052 100644 --- a/ir/common/debug.c +++ b/ir/common/debug.c @@ -8,6 +8,8 @@ #include "config.h" #endif +#ifdef DEBUG_libfirm + #include #include @@ -43,12 +45,18 @@ firm_dbg_module_t *firm_dbg_register(const char *name) static struct obstack dbg_obst; static set *module_set; +/** + * A debug module. + */ struct _firm_dbg_module_t { unsigned mask; const char *name; FILE *file; }; +/** + * Compares two modules by comparing it's names + */ static int module_cmp(const void *p1, const void *p2, size_t size) { const firm_dbg_module_t *m1 = p1; @@ -56,6 +64,9 @@ static int module_cmp(const void *p1, const void *p2, size_t size) return strcmp(m1->name, m2->name); } +/** + * initialize the debug module + */ static void firm_dbg_init(void) { obstack_init(&dbg_obst); @@ -90,11 +101,18 @@ void firm_dbg_set_file(firm_dbg_module_t *module, FILE *file) module->file = file; } +/** + * A message info: a pair of debug handle and message + */ typedef struct _msg_info_t { const char *msg; const firm_dbg_module_t *mod; } msg_info_t; +/** + * Formats a message given by a printf-like format and a va_list argument, + * puts the test on an obstack and return a msg_info. + */ static void *make_msg_info(const firm_dbg_module_t *mod, const char *fmt, va_list args) { static const char msg_header[] = "%s(%d) %s: "; @@ -148,3 +166,10 @@ void _firm_dbg_print(const firm_dbg_module_t *mod, unsigned mask, const char *fm } #endif /* WITH_LIBCORE */ + +#else /* DEBUG_libfirm */ + +/* some picky compiler don't allow empty files */ +static int dummy; + +#endif /* DEBUG_libfirm */