fix bug in type debug retrieve, output debug info when dumping type nodes
authorMatthias Braun <matze@braunis.de>
Tue, 18 May 2010 13:45:44 +0000 (13:45 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 18 May 2010 13:45:44 +0000 (13:45 +0000)
[r27542]

ir/debug/dbginfo.c
ir/ir/irdump.c

index a4fd57c..b688337 100644 (file)
@@ -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)
index d682746..aa4ffd3 100644 (file)
@@ -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));