<div dir="ltr">On Tue, Sep 3, 2013 at 2:16 AM, Stepan Dyatkovskiy <span dir="ltr"><<a href="mailto:stpworld@narod.ru" target="_blank">stpworld@narod.ru</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi Eli,<br>
Sorry for latency.<br>
As you remember this patch should correct 'mode' attr implementation. You proposed to use generic way of type detection for each target: just scan for target types and select one with suitable width.<br>
<br>
Unfortunately I can't commit patch with generic implementation. I got test failure for clang. And I expect more failures for another targets. The reason is next.<br>
<br>
The target could still keep mode unsupported even if it has type of suitable width. I mean the next.<br>
For example this string should cause error for i686 machines (128 bit float):<br>
typedef          float f128ibm __attribute__ ((mode (TF)));<br>
But in case of generic approach for all targets it would be passed.<br>
In this case virtual functions allows to implement exceptions.<br></blockquote><div><br></div><div>The generic implementation is still essentially correct; the the issue is that getLongDoubleWidth() isn't actually the right value to check.  It returns "sizeof(long double) * 8", not the actual width of the underlying float format.  You should be able to work around this by checking getLongDoubleFormat() instead of getLongDoubleWidth().</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
In this case 'getIntTypeByWidth' may be a bit confusing name. Instead it is supposed to return type for some particular mode, not by width. Something like getInt/RealTypeForMode(width, sign).<br>
Though, currently I kept the original name.<br><br></blockquote><div><br></div><div>If you want to change it, that's fine.</div><div><br></div><div>-Eli </div></div><br></div></div>