gdb: Convert language la_print_type field to a method
[deliverable/binutils-gdb.git] / gdb / opencl-lang.c
index 4080c51854f722f957a3885afbd98a655c983dfd..d1ca29d32f700c9304561f13ad9c20a6ae80e481 100644 (file)
@@ -994,27 +994,6 @@ Cannot perform conditional operation on vectors with different sizes"));
   return evaluate_subexp_c (expect_type, exp, pos, noside);
 }
 
-/* Print OpenCL types.  */
-
-static void
-opencl_print_type (struct type *type, const char *varstring,
-                  struct ui_file *stream, int show, int level,
-                  const struct type_print_options *flags)
-{
-  /* We nearly always defer to C type printing, except that vector
-     types are considered primitive in OpenCL, and should always
-     be printed using their TYPE_NAME.  */
-  if (show > 0)
-    {
-      type = check_typedef (type);
-      if (type->code () == TYPE_CODE_ARRAY && TYPE_VECTOR (type)
-         && type->name () != NULL)
-       show = 0;
-    }
-
-  c_print_type (type, varstring, stream, show, level, flags); 
-}
-
 const struct exp_descriptor exp_descriptor_opencl =
 {
   print_subexp_standard,
@@ -1042,7 +1021,6 @@ extern const struct language_data opencl_language_data =
   c_printchar,                 /* Print a character constant */
   c_printstr,                  /* Function to print string constant */
   c_emit_char,                 /* Print a single char */
-  opencl_print_type,           /* Print a type using appropriate syntax */
   c_print_typedef,             /* Print a typedef using appropriate syntax */
   c_value_print_inner,         /* la_value_print_inner */
   c_value_print,               /* Print a top-level value */
@@ -1091,6 +1069,26 @@ public:
     lai->bool_type_symbol = "int";
     lai->bool_type_default = types [opencl_primitive_type_int];
   }
+
+  /* See language.h.  */
+
+  void print_type (struct type *type, const char *varstring,
+                  struct ui_file *stream, int show, int level,
+                  const struct type_print_options *flags) const override
+  {
+    /* We nearly always defer to C type printing, except that vector types
+       are considered primitive in OpenCL, and should always be printed
+       using their TYPE_NAME.  */
+    if (show > 0)
+      {
+       type = check_typedef (type);
+       if (type->code () == TYPE_CODE_ARRAY && TYPE_VECTOR (type)
+           && type->name () != NULL)
+         show = 0;
+      }
+
+    c_print_type (type, varstring, stream, show, level, flags);
+  }
 };
 
 /* Single instance of the OpenCL language class.  */
This page took 0.023688 seconds and 4 git commands to generate.