Bug 2297 – on LinuxAmd64 some creal operations bring into scope a faulty version of powl

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
PowerPC
OS
Linux
Creation time
2008-08-20T11:05:00Z
Last change time
2015-06-09T01:31:13Z
Keywords
wrong-code
Assigned to
ibuclaw
Creator
fawzi

Attachments

IDFilenameSummaryContent-TypeSize
1037issue-2297.dFawzi Mohamed's case as attachmenttext/x-dsrc584

Comments

Comment #0 by fawzi — 2008-08-20T11:05:03Z
{{{ module m; version(tango) import tango.stdc.stdio; else import std.c.stdio; extern(C){ real powl(real x,real y); } creal conj(creal z) { return z.re - z.im*1i; } void main() { // with this assert on LinuxAmd64 the program writes // tst 0xb.9db22d0e560418ap-5 0xf.1048380af74f336p-39 0xb.9db22d0dfbd0e1dp-5 // instead of // tst 0xb.9db22d0e560418ap-5 0xf.1048380af74f336p-39 0xb.9db22d0e560418ap-5 assert(conj(7 + 3i) == 7-3i); real x = powl(1.0L-0.637L, 24); printf("tst %La %La %La\n", 1.0L-0.637L, x,powl(x, 1.0L/24.0L)); } }}}
Comment #1 by manuel.montezelo — 2011-10-11T08:16:10Z
Created attachment 1037 Fawzi Mohamed's case as attachment Added Fawzi Mohamed's case as attachment
Comment #2 by manuel.montezelo — 2011-10-11T08:19:12Z
I don't know if Fawzi Mohamed's solution is the correct one, but for me it produces what's supposed to be the correct result: -------------------------------------------------------------------------------- $ gdc-4.6 issue-2297.d -o issue-2297 && ./issue-2297 tst 0xb.9db22d0e560418ap-5 0xf.1048380af74f336p-39 0xb.9db22d0e560418ap-5 $ dpkg -l gdc-4.6 | grep ii ii gdc-4.6 0.29.1-4.6.1-14 GNU D compiler, based on the GCC backend $ uname -a Linux mafm-laptop 3.0.0-2-amd64 #1 SMP Fri Oct 7 20:48:45 UTC 2011 x86_64 GNU/Linux --------------------------------------------------------------------------------
Comment #3 by ibuclaw — 2012-07-06T05:14:39Z
Marking as fixed as can no longer reproduce.