[Issue 6997] New: 64bit optimizer bug
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Nov 23 13:22:34 PST 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6997
Summary: 64bit optimizer bug
Product: D
Version: D2
Platform: Other
OS/Version: Linux
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: timon.gehr at gmx.ch
--- Comment #0 from timon.gehr at gmx.ch 2011-11-23 13:21:40 PST ---
long fun(long a,long b,long c){
return a<b?a<c?a:b<c?b:c:b;
}
long baz(long a, long b){
bool s=(a<0)!=(b<0);
a = a>0?a:-a;
return s ? a : a;
}
struct R{
ulong bar, qux;
bool c;
R foo(){
if(!c){
long a = baz(bar, 0),
b = baz(bar, 0),
c = baz(bar, 0);
return R(fun(a,b,c), fun(a,b,c));
}
return R();
}
}
void main(){auto x=R().foo();}
when compiled with dmd -O -release -inline (64bit), the program fails with a
segfault during runtime on my machine. Removing any of the flags makes it run
through.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list