<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#c4">Comment # 4</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#c3">comment #3</a>)
<span class="quote">> (In reply to <a href="show_bug.cgi?id=115#c1">comment #1</a>)
> > 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?

> 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...</span >

*SymbolExp::toElem</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are watching all bug changes.</li>
      </ul>
    </body>
</html>