http://bugzilla.gdcproject.org/show_bug.cgi?id=115
--- Comment #4 from Iain Buclaw <ibuc...@gdcproject.org> --- (In reply to comment #3) > (In reply to comment #1) > > 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... *SymbolExp::toElem -- You are receiving this mail because: You are watching all bug changes.