PR29262, memory leak in pr_function_type
[binutils-gdb.git] / gdb / go-typeprint.c
index 5fe8dd4885fa87747c952a7fc2b4e1a1aac1f277..4995ac3918673b8f3d510772a362ff7504922632 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for printing Go types for GDB, the GNU debugger.
 
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
+   Copyright (C) 2012-2022 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    LEVEL indicates level of recursion (for nested definitions).  */
 
 void
-go_print_type (struct type *type, const char *varstring,
-              struct ui_file *stream, int show, int level,
-              const struct type_print_options *flags)
+go_language::print_type (struct type *type, const char *varstring,
+                        struct ui_file *stream, int show, int level,
+                        const struct type_print_options *flags) const
 {
   /* Borrowed from c-typeprint.c.  */
   if (show > 0)
-    CHECK_TYPEDEF (type);
+    type = check_typedef (type);
 
   /* Print the type of "abc" as "string", not char[4].  */
-  if (TYPE_CODE (type) == TYPE_CODE_ARRAY
-      && TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_CHAR)
+  if (type->code () == TYPE_CODE_ARRAY
+      && TYPE_TARGET_TYPE (type)->code () == TYPE_CODE_CHAR)
     {
-      fputs_filtered ("string", stream);
+      gdb_puts ("string", stream);
       return;
     }
 
   /* Punt the rest to C for now.  */
-  c_print_type (type, varstring, stream, show, level, flags);
+  c_print_type (type, varstring, stream, show, level, la_language, flags);
 }