fix multi-arch-exec for parallel mode
[deliverable/binutils-gdb.git] / gdb / d-lang.c
index 6db521b6d81ef500afe94999f8fa500fe78d1391..3dad91f1c52127030a3f9fe635b9b848bd1215c2 100644 (file)
@@ -1,6 +1,6 @@
 /* D language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2005, 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,6 +20,7 @@
 #include "defs.h"
 #include "symtab.h"
 #include "language.h"
+#include "varobj.h"
 #include "d-lang.h"
 #include "c-lang.h"
 #include "gdb_string.h"
@@ -37,9 +38,11 @@ extract_identifiers (const char *mangled_str, struct obstack *tempbuf)
 
   while (isdigit (*mangled_str))
     {
-      i = strtol (mangled_str, NULL, 10);
-      mangled_str++;
-      if (i <= 0  && strlen (mangled_str) < i)
+      char *end_ptr;
+
+      i = strtol (mangled_str, &end_ptr, 10);
+      mangled_str = end_ptr;
+      if (i <= 0 || strlen (mangled_str) < i)
         return 0;
       obstack_grow (tempbuf, mangled_str, i);
       mangled_str += i;
@@ -236,9 +239,9 @@ static const struct op_print d_op_print_tab[] =
 static const struct language_defn d_language_defn =
 {
   "d",
+  "D",
   language_d,
   range_check_off,
-  type_check_off,
   case_sensitive_on,
   array_row_major,
   macro_expansion_c,
@@ -250,15 +253,18 @@ static const struct language_defn d_language_defn =
   c_printstr,                  /* Function to print string constant.  */
   c_emit_char,                 /* Print a single char.  */
   c_print_type,                        /* Print a type using appropriate syntax.  */
-  c_print_typedef,             /* Print a typedef using appropriate syntax.  */
+  c_print_typedef,             /* Print a typedef using appropriate
+                                  syntax.  */
   d_val_print,                 /* Print a value using appropriate syntax.  */
   c_value_print,               /* Print a top-level value.  */
+  default_read_var_value,      /* la_read_var_value */
   NULL,                                /* Language specific skip_trampoline.  */
   "this",
   basic_lookup_symbol_nonlocal, 
   basic_lookup_transparent_type,
   d_demangle,                  /* Language specific symbol demangler.  */
-  NULL,                                /* Language specific class_name_from_physname.  */
+  NULL,                                /* Language specific
+                                  class_name_from_physname.  */
   d_op_print_tab,              /* Expression operators for printing.  */
   1,                           /* C-style arrays.  */
   0,                           /* String lower bound.  */
@@ -268,9 +274,15 @@ static const struct language_defn d_language_defn =
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
+  NULL,                                /* la_get_symbol_name_cmp */
+  iterate_over_symbols,
+  &default_varobj_ops,
   LANG_MAGIC
 };
 
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern initialize_file_ftype _initialize_d_language;
+
 void
 _initialize_d_language (void)
 {
This page took 0.027041 seconds and 4 git commands to generate.