S390: For zero, let is_power_of_two() return false

This fixes a minor issue with the helper function is_power_of_two(),
which returned non-zero ("true") if the argument was zero.  This led
to a wrong decision when passing a zero-sized struct in an inferior
function call.

gdb/ChangeLog:

	* s390-linux-tdep.c (is_power_of_two): Add comment.  Return
	  false if the argument is zero.
This commit is contained in:
Andreas Arnez 2015-04-27 11:38:46 +02:00 committed by Andreas Krebbel
parent 9e19566105
commit 6dbc9c0457
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-04-27 Andreas Arnez <arnez@linux.vnet.ibm.com>
* s390-linux-tdep.c (is_power_of_two): Add comment. Return
false if the argument is zero.
2015-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
* ada-lang.c (template_to_static_fixed_type): Return input type

View File

@ -2484,11 +2484,12 @@ is_float_like (struct type *type)
|| is_float_singleton (type));
}
/* Determine whether N is a power of two. */
static int
is_power_of_two (unsigned int n)
{
return ((n & (n - 1)) == 0);
return n && ((n & (n - 1)) == 0);
}
/* Return non-zero if TYPE should be passed as a pointer to a copy,