Introduce c_value_print_inner
[deliverable/binutils-gdb.git] / gdb / opencl-lang.c
index 268c3c5c37c342f640a3acf1e0478eaa628821c0..a48079881b557dba3fdbaf3cc73ef1eb2a452a3c 100644 (file)
@@ -1,5 +1,5 @@
 /* OpenCL language support for GDB, the GNU debugger.
-   Copyright (C) 2010-2018 Free Software Foundation, Inc.
+   Copyright (C) 2010-2020 Free Software Foundation, Inc.
 
    Contributed by Ken Werner <ken.werner@de.ibm.com>.
 
@@ -26,6 +26,7 @@
 #include "language.h"
 #include "varobj.h"
 #include "c-lang.h"
+#include "gdbarch.h"
 
 /* This macro generates enum values from a given type.  */
 
@@ -292,7 +293,7 @@ lval_func_free_closure (struct value *v)
 
   if (c->refc == 0)
     {
-      value_free (c->val); /* Decrement the reference counter of the value.  */
+      value_decref (c->val); /* Decrement the reference counter of the value.  */
       xfree (c->indices);
       xfree (c);
     }
@@ -819,7 +820,7 @@ evaluate_subexp_opencl (struct type *expect_type, struct expression *exp,
       else
        {
          /* For scalar operations we need to avoid evaluating operands
-            unecessarily.  However, for vector operations we always need to
+            unnecessarily.  However, for vector operations we always need to
             evaluate both operands.  Unfortunately we only know which of the
             two cases apply after we know the type of the second operand.
             Therefore we evaluate it once using EVAL_AVOID_SIDE_EFFECTS.  */
@@ -1053,7 +1054,6 @@ extern const struct language_defn opencl_language_defn =
   NULL,
   &exp_descriptor_opencl,
   c_parse,
-  c_yyerror,
   null_post_parser,
   c_printchar,                 /* Print a character constant */
   c_printstr,                  /* Function to print string constant */
@@ -1061,10 +1061,12 @@ extern const struct language_defn opencl_language_defn =
   opencl_print_type,           /* Print a type using appropriate syntax */
   c_print_typedef,             /* Print a typedef using appropriate syntax */
   c_val_print,                 /* Print a value using appropriate syntax */
+  c_value_print_inner,         /* la_value_print_inner */
   c_value_print,               /* Print a top-level value */
   default_read_var_value,      /* la_read_var_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 */
   basic_lookup_transparent_type,/* lookup_transparent_type */
   NULL,                                /* Language specific symbol demangler */
@@ -1079,7 +1081,6 @@ extern const struct language_defn opencl_language_defn =
   opencl_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
@@ -1087,7 +1088,8 @@ extern const struct language_defn opencl_language_defn =
   &default_varobj_ops,
   NULL,
   NULL,
-  LANG_MAGIC
+  c_is_string_type_p,
+  "{...}"                      /* la_struct_too_deep_ellipsis */
 };
 
 static void *
@@ -1177,8 +1179,9 @@ build_opencl_types (struct gdbarch *gdbarch)
   return types;
 }
 
+void _initialize_opencl_language ();
 void
-_initialize_opencl_language (void)
+_initialize_opencl_language ()
 {
   opencl_type_data = gdbarch_data_register_post_init (build_opencl_types);
 }
This page took 0.030796 seconds and 4 git commands to generate.