<font size="2"><font face="tahoma,sans-serif">Hi;<br></font></font><br><div class="gmail_quote">2011/10/26 Rafael Ávila de Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">> +  // PR9614. Avoid cases where the source code is lying to us. An available<br>
> +  // externally function should have an equivalent function somewhere else,<br>
> +  // but a function that calls itself is clearly not equivalent to the real<br>
> +  // implementation.<br>
> +  if (isTriviallyRecursiveViaAsm(F))<br>
> +    return false;<br>
> +  if (F->hasAttr<AlwaysInlineAttr>())<br>
> +    return true;<br>
> +  if (CodeGenOpts.OptimizationLevel == 0)<br>
> +    return false;<br>
> +  return true;<br>
><br>
> Please keep the CodeGenOpts.OptimizationLevel test first, and put the<br>
> isTriviallyRecursiveViaAsm test at the end.<br>
<br>
</div>I did that, but it changes the meaning for always_inline functions. We<br>
can always revisit this if one is found in the wild.<br></blockquote><div><br></div><div>Please merge this into 3.0 branch, thanks!</div><div><br></div><div>ismail</div><div> </div></div>