&gt; God saves a puppy anytime someone filed a compiler bug with a trivial test case that demonstrates the problem.<p>The current (r10e) shipping version of clang cannot return 128bit floats from a function.<p><pre><code>   #include &lt;iostream&gt;
   int main(int c, char **v) {
       std::stringstream(&quot;1.5&quot;);
       double x; s &gt;&gt; x;
       return x == 1.5 ? 0 : 1;
   }
</code></pre>
EDIT: You don&#x27;t need &quot;long double&quot; in the above.  double (or float) will show the problem.  The standard library converts all floating point numbers to long double internally.