/* Perform non-arithmetic operations on values, for GDB.
- Copyright (C) 1986-2019 Free Software Foundation, Inc.
+ Copyright (C) 1986-2020 Free Software Foundation, Inc.
This file is part of GDB.
"%s # of parms %d\n",
functions[ix]->demangled_name (),
(int) parm_types.size ());
- for (jj = 0; jj < args.size () - static_offset; jj++)
+
+ fprintf_filtered (gdb_stderr,
+ "...Badness of length : {%d, %d}\n",
+ bv[0].rank, bv[0].subrank);
+
+ for (jj = 1; jj < bv.size (); jj++)
fprintf_filtered (gdb_stderr,
- "...Badness @ %d : %d\n",
- jj, bv[jj].rank);
+ "...Badness of arg %d : {%d, %d}\n",
+ jj, bv[jj].rank, bv[jj].subrank);
}
if (oload_champ_bv->empty ())
return slice;
}
-/* Create a value for a FORTRAN complex number. Currently most of the
- time values are coerced to COMPLEX*16 (i.e. a complex number
- composed of 2 doubles. This really should be a smarter routine
- that figures out precision intelligently as opposed to assuming
- doubles. FIXME: fmb */
+/* See value.h. */
struct value *
-value_literal_complex (struct value *arg1,
+value_literal_complex (struct value *arg1,
struct value *arg2,
struct type *type)
{
return val;
}
+/* See value.h. */
+
+struct value *
+value_real_part (struct value *value)
+{
+ struct type *type = check_typedef (value_type (value));
+ struct type *ttype = TYPE_TARGET_TYPE (type);
+
+ gdb_assert (TYPE_CODE (type) == TYPE_CODE_COMPLEX);
+ return value_from_component (value, ttype, 0);
+}
+
+/* See value.h. */
+
+struct value *
+value_imaginary_part (struct value *value)
+{
+ struct type *type = check_typedef (value_type (value));
+ struct type *ttype = TYPE_TARGET_TYPE (type);
+
+ gdb_assert (TYPE_CODE (type) == TYPE_CODE_COMPLEX);
+ return value_from_component (value, ttype,
+ TYPE_LENGTH (check_typedef (ttype)));
+}
+
/* Cast a value into the appropriate complex data type. */
static struct value *
error (_("cannot cast non-number to complex"));
}
+void _initialize_valops ();
void
-_initialize_valops (void)
+_initialize_valops ()
{
add_setshow_boolean_cmd ("overload-resolution", class_support,
&overload_resolution, _("\