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.