Fix function comments
[deliverable/binutils-gdb.git] / gdb / valops.c
index dac0274e474dfb72f2869683435a8e8629cec8d0..5a244a9f63ec12144b0e595dd6593330dd5ff96b 100644 (file)
@@ -1,6 +1,6 @@
 /* Perform non-arithmetic operations on values, for GDB.
 
-   Copyright (C) 1986-2015 Free Software Foundation, Inc.
+   Copyright (C) 1986-2016 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -127,21 +127,21 @@ show_overload_resolution (struct ui_file *file, int from_tty,
 struct value *
 find_function_in_inferior (const char *name, struct objfile **objf_p)
 {
-  struct symbol *sym;
+  struct block_symbol sym;
 
   sym = lookup_symbol (name, 0, VAR_DOMAIN, 0);
-  if (sym != NULL)
+  if (sym.symbol != NULL)
     {
-      if (SYMBOL_CLASS (sym) != LOC_BLOCK)
+      if (SYMBOL_CLASS (sym.symbol) != LOC_BLOCK)
        {
          error (_("\"%s\" exists in this program but is not a function."),
                 name);
        }
 
       if (objf_p)
-       *objf_p = symbol_objfile (sym);
+       *objf_p = symbol_objfile (sym.symbol);
 
-      return value_of_variable (sym, NULL);
+      return value_of_variable (sym.symbol, sym.block);
     }
   else
     {
@@ -1291,27 +1291,12 @@ value_repeat (struct value *arg1, int count)
 struct value *
 value_of_variable (struct symbol *var, const struct block *b)
 {
-  struct frame_info *frame;
+  struct frame_info *frame = NULL;
 
-  if (!symbol_read_needs_frame (var))
-    frame = NULL;
-  else if (!b)
+  if (symbol_read_needs_frame (var))
     frame = get_selected_frame (_("No frame selected."));
-  else
-    {
-      frame = block_innermost_frame (b);
-      if (!frame)
-       {
-         if (BLOCK_FUNCTION (b) && !block_inlined_p (b)
-             && SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)))
-           error (_("No frame is currently executing in block %s."),
-                  SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)));
-         else
-           error (_("No frame is currently executing in specified block"));
-       }
-    }
 
-  return read_var_value (var, frame);
+  return read_var_value (var, b, frame);
 }
 
 struct value *
@@ -1641,7 +1626,7 @@ value_array (int lowbound, int highbound, struct value **elemvec)
 }
 
 struct value *
-value_cstring (char *ptr, ssize_t len, struct type *char_type)
+value_cstring (const char *ptr, ssize_t len, struct type *char_type)
 {
   struct value *val;
   int lowbound = current_language->string_lower_bound;
@@ -1664,7 +1649,7 @@ value_cstring (char *ptr, ssize_t len, struct type *char_type)
    string may contain embedded null bytes.  */
 
 struct value *
-value_string (char *ptr, ssize_t len, struct type *char_type)
+value_string (const char *ptr, ssize_t len, struct type *char_type)
 {
   struct value *val;
   int lowbound = current_language->string_lower_bound;
@@ -2062,7 +2047,7 @@ search_struct_method (const char *name, struct value **arg1p,
              struct cleanup *back_to;
              CORE_ADDR address;
 
-             tmp = xmalloc (TYPE_LENGTH (baseclass));
+             tmp = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
              back_to = make_cleanup (xfree, tmp);
              address = value_address (*arg1p);
 
@@ -2915,7 +2900,7 @@ find_oload_champ_namespace_loop (struct value **args, int nargs,
 
   old_cleanups = make_cleanup (xfree, *oload_syms);
   make_cleanup (xfree, *oload_champ_bv);
-  new_namespace = alloca (namespace_len + 1);
+  new_namespace = (char *) alloca (namespace_len + 1);
   strncpy (new_namespace, qualified_name, namespace_len);
   new_namespace[namespace_len] = '\0';
   new_oload_syms = make_symbol_overload_list (func_name,
@@ -3043,8 +3028,7 @@ find_oload_champ (struct value **args, int nargs,
          else
            nparms = TYPE_NFIELDS (SYMBOL_TYPE (oload_syms[ix]));
 
-         parm_types = (struct type **)
-           xmalloc (nparms * (sizeof (struct type *)));
+         parm_types = XNEWVEC (struct type *, nparms);
          for (jj = 0; jj < nparms; jj++)
            parm_types[jj] = (fns_ptr != NULL
                              ? (TYPE_FN_FIELD_ARGS (fns_ptr, ix)[jj].type)
@@ -3457,15 +3441,15 @@ value_struct_elt_for_reference (struct type *domain, int offset,
            {
              struct symbol *s = 
                lookup_symbol (TYPE_FN_FIELD_PHYSNAME (f, j),
-                              0, VAR_DOMAIN, 0);
+                              0, VAR_DOMAIN, 0).symbol;
 
              if (s == NULL)
                return NULL;
 
              if (want_address)
-               return value_addr (read_var_value (s, 0));
+               return value_addr (read_var_value (s, 0, 0));
              else
-               return read_var_value (s, 0);
+               return read_var_value (s, 0, 0);
            }
 
          if (TYPE_FN_FIELD_VIRTUAL_P (f, j))
@@ -3488,12 +3472,12 @@ value_struct_elt_for_reference (struct type *domain, int offset,
            {
              struct symbol *s = 
                lookup_symbol (TYPE_FN_FIELD_PHYSNAME (f, j),
-                              0, VAR_DOMAIN, 0);
+                              0, VAR_DOMAIN, 0).symbol;
 
              if (s == NULL)
                return NULL;
 
-             v = read_var_value (s, 0);
+             v = read_var_value (s, 0, 0);
              if (!want_address)
                result = v;
              else
@@ -3564,19 +3548,19 @@ value_maybe_namespace_elt (const struct type *curtype,
                           enum noside noside)
 {
   const char *namespace_name = TYPE_TAG_NAME (curtype);
-  struct symbol *sym;
+  struct block_symbol sym;
   struct value *result;
 
   sym = cp_lookup_symbol_namespace (namespace_name, name,
                                    get_selected_block (0), VAR_DOMAIN);
 
-  if (sym == NULL)
+  if (sym.symbol == NULL)
     return NULL;
   else if ((noside == EVAL_AVOID_SIDE_EFFECTS)
-          && (SYMBOL_CLASS (sym) == LOC_TYPEDEF))
-    result = allocate_value (SYMBOL_TYPE (sym));
+          && (SYMBOL_CLASS (sym.symbol) == LOC_TYPEDEF))
+    result = allocate_value (SYMBOL_TYPE (sym.symbol));
   else
-    result = value_of_variable (sym, get_selected_block (0));
+    result = value_of_variable (sym.symbol, sym.block);
 
   if (want_address)
     result = value_addr (result);
@@ -3729,7 +3713,7 @@ value_full_object (struct value *argp,
 struct value *
 value_of_this (const struct language_defn *lang)
 {
-  struct symbol *sym;
+  struct block_symbol sym;
   const struct block *b;
   struct frame_info *frame;
 
@@ -3741,11 +3725,11 @@ value_of_this (const struct language_defn *lang)
   b = get_frame_block (frame, NULL);
 
   sym = lookup_language_this (lang, b);
-  if (sym == NULL)
+  if (sym.symbol == NULL)
     error (_("current stack frame does not contain a variable named `%s'"),
           lang->la_name_of_this);
 
-  return read_var_value (sym, frame);
+  return read_var_value (sym.symbol, sym.block, frame);
 }
 
 /* Return the value of the local variable, if one exists.  Return NULL
This page took 0.026688 seconds and 4 git commands to generate.