bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug#7928: mktime test in configure: UB resulting in infinite loop


From: Rich Felker
Subject: Re: bug#7928: mktime test in configure: UB resulting in infinite loop
Date: Fri, 28 Jan 2011 14:13:59 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Jan 28, 2011 at 06:57:22PM +0100, Bruno Haible wrote:
> Rich Felker wrote:
> > Testing which of the three allowable signed integer
> > representations is used is easy: compare ~(t)1 against and -(t)1 and
> > -(t)2.
> 
> Testing which of the three signed integer representations is in use
> is not even needed: Your formula
>   ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)
> yields the correct result in all three cases.

It yields the correct max. However, getting the min requires knowing
whether min is -max or -max-1. This depends on which of the
representations is used:

min = ~(t)1 == -(t)2 ? -max-1 : -max;

Rich



reply via email to

[Prev in Thread] Current Thread [Next in Thread]