[applied] ir: Improve get_debug_representation

Message ID 875ye7fjob.fsf@seketeli.org
State New
Headers
Series [applied] ir: Improve get_debug_representation |

Commit Message

Dodji Seketeli Dec. 19, 2022, 4:21 p.m. UTC
  Hello,

While looking at something else, I noticed that the debug() function,
very useful which debugging (using GDB at least) could be improved for
classes/unions by prefixing the type name with struct/class/union as
appropriate.

Fixed thus.

	* src/abg-ir.cc (get_debug_representation): Prefix
	classes/structs/unions with the 'classes/struct/union' prefix.

Signed-off-by: Dodji Seketeli <dodji@seketeli.org>
---
 src/abg-ir.cc | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
  

Patch

diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 0f8c1d2b..85b5cbb3 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -9303,6 +9303,15 @@  get_debug_representation(const type_or_decl_base* artifact)
       class_decl *clazz = is_class_type(c);
       string name = c->get_qualified_name();
       std::ostringstream o;
+      if (clazz)
+	{
+	  if (clazz->is_struct())
+	    o << "struct ";
+	  else
+	    o << "class ";
+	}
+      else if (is_union_type(c))
+	o << "union ";
       o << name;
 
       if (clazz)
@@ -9362,7 +9371,7 @@  get_debug_representation(const type_or_decl_base* artifact)
     {
       string name = e->get_qualified_name();
       std::ostringstream o;
-      o << name
+      o << "union " << name
 	<< " : "
 	<< e->get_underlying_type()->get_pretty_representation(/*internal=*/false,
 							       true)