gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / opencl-lang.c
index a548fe60a746449cdca8f8559af421dfc434d50f..eaf61c3fc1aad18e7bf3bcf4e81a75946fbdd300 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,16 +1021,12 @@ 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 */
-  NULL,                                /* Language specific skip_trampoline */
   NULL,                         /* name_of_this */
   false,                       /* la_store_sym_names_in_linkage_form_p */
   basic_lookup_symbol_nonlocal,        /* lookup_symbol_nonlocal */
-  NULL,                                /* Language specific symbol demangler */
-  NULL,
   NULL,                                /* Language specific
                                   class_name_from_physname */
   c_op_print_tab,              /* expression operators for printing */
@@ -1061,10 +1036,8 @@ extern const struct language_data opencl_language_data =
   default_collect_symbol_completion_matches,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
-  default_search_name_hash,
   &default_varobj_ops,
   NULL,
-  NULL,
   c_is_string_type_p,
   "{...}"                      /* la_struct_too_deep_ellipsis */
 };
@@ -1094,6 +1067,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.031685 seconds and 4 git commands to generate.