From fd2f17851e99c48dd19d380ecbc7a727cd5055a5 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Tue, 18 May 2010 13:45:44 +0000 Subject: [PATCH] fix bug in type debug retrieve, output debug info when dumping type nodes [r27542] --- ir/debug/dbginfo.c | 2 +- ir/ir/irdump.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ir/debug/dbginfo.c b/ir/debug/dbginfo.c index a4fd57cac..b6883373f 100644 --- a/ir/debug/dbginfo.c +++ b/ir/debug/dbginfo.c @@ -130,7 +130,7 @@ void ir_retrieve_type_dbg_info(char *buffer, size_t buffer_size, if (retrieve_type_dbg) retrieve_type_dbg(buffer, buffer_size, tdbgi); assert(buffer_size > 0); - buffer[0] = 0; + buffer[buffer_size-1] = 0; } void ir_dbg_info_snprint(char *buf, size_t bufsize, const dbg_info *dbg) diff --git a/ir/ir/irdump.c b/ir/ir/irdump.c index d6827465d..aa4ffd399 100644 --- a/ir/ir/irdump.c +++ b/ir/ir/irdump.c @@ -2062,7 +2062,15 @@ int dump_type_node(FILE *F, ir_type *tp) fprintf(F, "node: {title: "); PRINT_TYPEID(tp); - ir_fprintf(F, " label: \"%s %+F\" info1: \"", get_type_tpop_name(tp), tp); + fprintf(F, " label: \"%s ", get_type_tpop_name(tp)); + if (tp->dbi != NULL) { + char buf[256]; + ir_print_type(buf, sizeof(buf), tp); + fprintf(F, "'%s'", buf); + } else { + ir_fprintf(F, "%+F", tp); + } + fputs("\" info1: \"", F); dump_type_to_file(F, tp, dump_verbosity_max); fprintf(F, "\"\n"); print_type_dbg_info(F, get_type_dbg_info(tp)); -- 2.20.1