X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Recipient: djgpp-workers AT delorie DOT com Date: Mon, 14 Sep 2009 23:19:21 +0300 From: Eli Zaretskii Subject: Re: atan2 bug In-reply-to: <200909142122.34236.juan.guerrero@gmx.de> X-012-Sender: halo1 AT inter DOT net DOT il To: djgpp-workers AT delorie DOT com Message-id: <83y6ohxos6.fsf@gnu.org> References: <200909142122 DOT 34236 DOT juan DOT guerrero AT gmx DOT de> Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: Juan Manuel Guerrero > Date: Mon, 14 Sep 2009 21:22:34 +0200 > > The code of atan2 contains a bug. As can be seen it is tried to check if > the double x variable is inf by checking if the mantissa is identical zero. > On the stack the 64 bit x variable occupies esp + 16 and esp + 12. It makes > no sense to check the mantissa high part at esp + 16 that corresponds to > the x variable and the manstissa low part at esp + 4 that corresponds to > the y variable. > > |s|exp|man h| <-- esp + 16 \ > | man l | <-- esp + 12 / (64 bit ieee) double x > |s|exp|man h| <-- esp + 8 \ > | man l | <-- esp + 4 / (64 bit ieee) double y > > It seems to be a "copy and paste" error. Do you have a test that actually trips it? If so, how about adding it to tests/libc/ansi/math?