<html>
<head>
<base href="http://bugzilla.gdcproject.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Union literals as rvalues yields different values every run"
href="http://bugzilla.gdcproject.org/show_bug.cgi?id=115#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Union literals as rvalues yields different values every run"
href="http://bugzilla.gdcproject.org/show_bug.cgi?id=115">bug 115</a>
from <span class="vcard"><a class="email" href="mailto:ibuclaw@gdcproject.org" title="Iain Buclaw <ibuclaw@gdcproject.org>"> <span class="fn">Iain Buclaw</span></a>
</span></b>
<pre>(In reply to <a href="show_bug.cgi?id=115#c1">comment #1</a>)
<span class="quote">> The problem starts in the frontend, optimize.c(DotVarExp::optimize).
> It optimizes 'func(_f(a).i)' into 'func (a)', so it produces a call to func
> with an incorrectly typed parameter.
>
> The backend then tries to pass 'a' in floating point register leading to
> these strange results.
>
> @Iain do you think this should be fixed in the frontend or in the glue layer
> by doing an explicit conversion? I also wonder why the GCC backend didn't
> catch this problem, I thought it should know there's a type mismatch between
> the function declaration and the actual call?</span >
You could do a view convert in SymbolExp if 'this->type' and 'this->var->type'
mismatch. There'd be no way to enforce that we are dealing with a union
optimisation though...</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are watching all bug changes.</li>
</ul>
</body>
</html>