* defs.h, valprint.c: Make longest_to_int a function not a macro.
Only test against INT_MIN if a LONGEST is bigger than an int.
This commit is contained in:
parent
79aab093bb
commit
fb0f423133
3 changed files with 31 additions and 4 deletions
|
@ -1,5 +1,8 @@
|
|||
Fri Feb 18 08:26:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
* defs.h, valprint.c: Make longest_to_int a function not a macro.
|
||||
Only test against INT_MIN if a LONGEST is bigger than an int.
|
||||
|
||||
* README: Change GhostScript to Ghostscript.
|
||||
|
||||
Fri Feb 18 07:30:55 1994 Jim Kingdon (kingdon@cygnus.com)
|
||||
|
|
|
@ -556,8 +556,7 @@ enum val_prettyprint
|
|||
arguments to a function, number in a value history, register number, etc.)
|
||||
where the value must not be larger than can fit in an int. */
|
||||
|
||||
#define longest_to_int(x) (((x) > INT_MAX || (x) < INT_MIN) \
|
||||
? (error ("Value out of range."),0) : (int) (x))
|
||||
extern int longest_to_int PARAMS ((LONGEST));
|
||||
|
||||
/* Assorted functions we can declare, now that const and volatile are
|
||||
defined. */
|
||||
|
|
|
@ -277,9 +277,12 @@ val_print_type_code_int (type, valaddr, stream)
|
|||
#endif
|
||||
if (len <= sizeof (LONGEST))
|
||||
{
|
||||
/* We can print it in decimal. */
|
||||
/* The most significant bytes are zero, so we can just get
|
||||
the least significant sizeof (LONGEST) bytes and print it
|
||||
in decimal. */
|
||||
print_longest (stream, 'u', 0,
|
||||
unpack_long (BUILTIN_TYPE_LONGEST, first_addr));
|
||||
extract_unsigned_integer (first_addr,
|
||||
sizeof (LONGEST)));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -424,6 +427,28 @@ print_longest (stream, format, use_local, val_long)
|
|||
#endif /* !PRINTF_HAS_LONG_LONG */
|
||||
}
|
||||
|
||||
/* This used to be a macro, but I don't think it is called often enough
|
||||
to merit such treatment. */
|
||||
/* Convert a LONGEST to an int. This is used in contexts (e.g. number of
|
||||
arguments to a function, number in a value history, register number, etc.)
|
||||
where the value must not be larger than can fit in an int. */
|
||||
|
||||
int
|
||||
longest_to_int (arg)
|
||||
LONGEST arg;
|
||||
{
|
||||
|
||||
/* This check is in case a system header has botched the
|
||||
definition of INT_MIN, like on BSDI. */
|
||||
if (sizeof (LONGEST) <= sizeof (int))
|
||||
return arg;
|
||||
|
||||
if (arg > INT_MAX || arg < INT_MIN)
|
||||
error ("Value out of range.");
|
||||
|
||||
return arg;
|
||||
}
|
||||
|
||||
/* Print a floating point value of type TYPE, pointed to in GDB by VALADDR,
|
||||
on STREAM. */
|
||||
|
||||
|
|
Loading…
Reference in a new issue