fix warning
[libfirm] / ir / debug / dbginfo.c
index d7eb835..73f8aea 100644 (file)
@@ -30,6 +30,7 @@
 #include "irnode_t.h"
 #include "type_t.h"
 #include "entity_t.h"
+#include "error.h"
 
 merge_pair_func *__dbg_info_merge_pair = default_dbg_info_merge_pair;
 merge_sets_func *__dbg_info_merge_sets = default_dbg_info_merge_sets;
@@ -72,8 +73,7 @@ const char *dbg_action_2_str(dbg_action a)
                if (a <= dbg_max)
                        return "string conversion not implemented";
                else
-                       assert(!"Missing debug action in dbg_action_2_str()");
-               return NULL;
+                       panic("Missing debug action in dbg_action_2_str()");
        }
 #undef CASE
 }
@@ -127,7 +127,11 @@ void ir_set_type_debug_retrieve(retrieve_type_dbg_func func)
 void ir_retrieve_type_dbg_info(char *buffer, size_t buffer_size,
                                const type_dbg_info *tdbgi)
 {
-       retrieve_type_dbg(buffer, buffer_size, tdbgi);
+       buffer[0] = '\0';
+       if (retrieve_type_dbg)
+               retrieve_type_dbg(buffer, buffer_size, tdbgi);
+       assert(buffer_size > 0);
+       buffer[buffer_size-1] = '\0';
 }
 
 void ir_dbg_info_snprint(char *buf, size_t bufsize, const dbg_info *dbg)