/* Returns true if the ranges defined by [offset1, offset1+len1) and
[offset2, offset2+len2) overlap. */
-static int
+static bool
ranges_overlap (LONGEST offset1, ULONGEST len1,
LONGEST offset2, ULONGEST len2)
{
/* Returns true if RANGES contains any range that overlaps [OFFSET,
OFFSET+LENGTH). */
-static int
+static bool
ranges_contain (const std::vector<range> &ranges, LONGEST offset,
ULONGEST length)
{
const struct range &bef = *(i - 1);
if (ranges_overlap (bef.offset, bef.length, offset, length))
- return 1;
+ return true;
}
if (i < ranges.end ())
const struct range &r = *i;
if (ranges_overlap (r.offset, r.length, offset, length))
- return 1;
+ return true;
}
- return 0;
+ return false;
}
static struct cmd_list_element *functionlist;
return type ()->arch ();
}
-int
+bool
value::bits_available (LONGEST offset, ULONGEST length) const
{
gdb_assert (!m_lazy);
|| ranges_contain (m_unavailable, offset, length));
}
-int
+bool
value::bytes_available (LONGEST offset, ULONGEST length) const
{
ULONGEST sign = (1ULL << (sizeof (ULONGEST) * 8 - 1)) / TARGET_CHAR_BIT;
return bits_available (offset * TARGET_CHAR_BIT, length * TARGET_CHAR_BIT);
}
-int
+bool
value::bits_any_optimized_out (int bit_offset, int bit_length) const
{
gdb_assert (!m_lazy);
return ranges_contain (m_optimized_out, bit_offset, bit_length);
}
-int
+bool
value::entirely_available ()
{
/* We can only tell whether the whole value is available when we try
fetch_lazy ();
if (m_unavailable.empty ())
- return 1;
- return 0;
+ return true;
+ return false;
}
/* See value.h. */
-int
+bool
value::entirely_covered_by_range_vector (const std::vector<range> &ranges)
{
/* We can only tell whether the whole value is optimized out /
if (t.offset == 0
&& t.length == TARGET_CHAR_BIT * enclosing_type ()->length ())
- return 1;
+ return true;
}
- return 0;
+ return false;
}
/* Insert into the vector pointed to by VECTORP the bit range starting of
return contents_raw ();
}
-int
+bool
value::optimized_out ()
{
if (m_lazy)
/* Given a value, determine whether the contents bytes starting at
OFFSET and extending for LENGTH bytes are available. This returns
- nonzero if all bytes in the given range are available, zero if any
+ true if all bytes in the given range are available, false if any
byte is unavailable. */
- int bytes_available (LONGEST offset, ULONGEST length) const;
+ bool bytes_available (LONGEST offset, ULONGEST length) const;
/* Given a value, determine whether the contents bits starting at
OFFSET and extending for LENGTH bits are available. This returns
- nonzero if all bits in the given range are available, zero if any
+ true if all bits in the given range are available, false if any
bit is unavailable. */
- int bits_available (LONGEST offset, ULONGEST length) const;
+ bool bits_available (LONGEST offset, ULONGEST length) const;
/* Like bytes_available, but return false if any byte in the
whole object is unavailable. */
- int entirely_available ();
+ bool entirely_available ();
/* Like entirely_available, but return false if any byte in the
whole object is available. */
- int entirely_unavailable ()
+ bool entirely_unavailable ()
{ return entirely_covered_by_range_vector (m_unavailable); }
/* Mark this value's content bytes starting at OFFSET and extending
for LENGTH bits as unavailable. */
void mark_bits_unavailable (LONGEST offset, ULONGEST length);
- /* If nonzero, this is the value of a variable which does not actually
+ /* If true, this is the value of a variable which does not actually
exist in the program, at least partially. If the value is lazy,
this may fetch it now. */
- int optimized_out ();
+ bool optimized_out ();
/* Given a value, return true if any of the contents bits starting at
OFFSET and extending for LENGTH bits is optimized out, false
otherwise. */
- int bits_any_optimized_out (int bit_offset, int bit_length) const;
+ bool bits_any_optimized_out (int bit_offset, int bit_length) const;
/* Like optimized_out, but return true iff the whole value is
optimized out. */
- int entirely_optimized_out ()
+ bool entirely_optimized_out ()
{
return entirely_covered_by_range_vector (m_optimized_out);
}
/* Returns true if this value is entirely covered by RANGES. If the
value is lazy, it'll be read now. Note that RANGE is a pointer
to pointer because reading the value might change *RANGE. */
- int entirely_covered_by_range_vector (const std::vector<range> &ranges);
+ bool entirely_covered_by_range_vector (const std::vector<range> &ranges);
/* Copy the ranges metadata from this value that overlaps
[SRC_BIT_OFFSET, SRC_BIT_OFFSET+BIT_LENGTH) into DST,