doc/gdbinv-s.m4.in: remove text on special procedures to continue after
[deliverable/binutils-gdb.git] / gdb / valarith.c
index aefa1d4de1145997a10a553ebc09ed1f22e72ff1..4c0706bdf643311e1e91dbd7a883647c3c9f0c75 100644 (file)
@@ -1,5 +1,5 @@
 /* Perform arithmetic and other operations on values, for GDB.
-   Copyright 1986, 1989, 1991 Free Software Foundation, Inc.
+   Copyright 1986, 1989, 1991, 1992 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -17,11 +17,10 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-#include <stdio.h>
-
 #include "defs.h"
 #include "value.h"
 #include "symtab.h"
+#include "gdbtypes.h"
 #include "expression.h"
 #include "target.h"
 #include <string.h>
@@ -135,7 +134,8 @@ value_subscripted_rvalue (array, idx)
     error ("no such vector element");
 
   v = allocate_value (elt_type);
-  bcopy (VALUE_CONTENTS (array) + elt_offs, VALUE_CONTENTS (v), elt_size);
+  (void) memcpy (VALUE_CONTENTS (v), VALUE_CONTENTS (array) + elt_offs,
+                elt_size);
 
   if (VALUE_LVAL (array) == lval_internalvar)
     VALUE_LVAL (v) = lval_internalvar_component;
@@ -273,11 +273,11 @@ value_x_binop (arg1, arg2, op, otherop)
          argvec[1] = argvec[0];
          argvec++;
        }
-      return target_call_function (argvec[0], 2 - static_memfuncp, argvec + 1);
+      return call_function_by_hand (argvec[0], 2 - static_memfuncp, argvec + 1);
     }
   error ("member function %s not found", tstr);
 #ifdef lint
-  return target_call_function (argvec[0], 2 - static_memfuncp, argvec + 1);
+  return call_function_by_hand (argvec[0], 2 - static_memfuncp, argvec + 1);
 #endif
 }
 
@@ -332,7 +332,7 @@ value_x_unop (arg1, op)
          argvec[1] = argvec[0];
          argvec++;
        }
-      return target_call_function (argvec[0], 1 - static_memfuncp, argvec + 1);
+      return call_function_by_hand (argvec[0], 1 - static_memfuncp, argvec + 1);
     }
   error ("member function %s not found", tstr);
   return 0;  /* For lint -- never reached */
@@ -550,7 +550,7 @@ value_binop (arg1, arg2, op)
   return val;
 }
 \f
-/* Simulate the C operator ! -- return 1 if ARG1 contains zeros.  */
+/* Simulate the C operator ! -- return 1 if ARG1 contains zero.  */
 
 int
 value_zerop (arg1)
@@ -561,6 +561,9 @@ value_zerop (arg1)
 
   COERCE_ARRAY (arg1);
 
+  if (TYPE_CODE (VALUE_TYPE (arg1)) == TYPE_CODE_FLT)
+    return 0 == value_as_double (arg1);
+
   len = TYPE_LENGTH (VALUE_TYPE (arg1));
   p = VALUE_CONTENTS (arg1);
 
This page took 0.02622 seconds and 4 git commands to generate.