March 27, 2005
<code>
float x;
	
void foo()
{
	x = -x;
}

void bar()
{
	return foo();
}

void main() {}
</code>

When compiled with -O and -inline, DMD exits with:
Internal error: ..\ztc\cg87.c 279

The error goes away when either -O or -inline is removed or when float is changed to int (error remains with double) or when 'return foo();' is replaced with plain 'foo();'

DMD.119; WinXP

-- 
Tomasz Stachowiak  /+ a.k.a. h3r3tic +/
March 27, 2005
Tom S wrote:

| <code>
| float x;
|
| void foo()
| {
|     x = -x;
| }
|
| void bar()
| {
|     return foo();
| }
|
| void main() {}
| </code>
|
| When compiled with -O and -inline, DMD exits with:
| Internal error: ..\ztc\cg87.c 279
|
| The error goes away when either -O or -inline is removed or when float
| is changed to int (error remains with double) or when 'return foo();'
| is replaced with plain 'foo();'
|
| DMD.119; WinXP
|

Added to DStress as
http://dstress.kuehne.cn/run/bug_cg87_279_A.d
http://dstress.kuehne.cn/run/bug_cg87_279_B.d
http://dstress.kuehne.cn/run/bug_cg87_279_C.d
http://dstress.kuehne.cn/run/bug_cg87_279_D.d
http://dstress.kuehne.cn/run/bug_cg87_279_E.d
http://dstress.kuehne.cn/run/bug_cg87_279_F.d
http://dstress.kuehne.cn/run/bug_cg87_279_G.d
http://dstress.kuehne.cn/run/bug_cg87_279_H.d
http://dstress.kuehne.cn/run/bug_cg87_279_I.d
http://dstress.kuehne.cn/run/bug_cg87_2393_A.d
http://dstress.kuehne.cn/run/bug_cg87_2393_B.d
http://dstress.kuehne.cn/run/bug_cg87_2393_C.d
http://dstress.kuehne.cn/run/bug_cg87_2393_D.d
http://dstress.kuehne.cn/run/bug_cg87_2393_E.d
http://dstress.kuehne.cn/run/bug_cg87_2393_F.d

Thomas