<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Feb 18, 2013, at 5:01 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:</div><blockquote type="cite"><div dir="ltr"><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; position: static; z-index: auto; "><div class="im">> In the context of LTO, it makes sense for the attribute to be on function bodies, not on prototypes.<br>
><br>
</div>Yeah, I noticed that after sending this patch. I modified it to check the function CI is in for that attribute. Once we have support for the `-fno-builtin-FUNCTION' flag, I expect the attribute to look something like this:<br>

<br>
        "no-builtin-functions" = "puts,foo,bar"<br></blockquote><div><br></div><div style="">I wonder... why not attach the no-builtin attribute to the call instruction? It seems like that would avoid the need of a string attribute altogether, having the frontend match up calls to specific functions which should not be considered calls to builtin functions?</div></div></div></div></blockquote><div><br></div><div>How does this work?  If I build with -fno-builtin-fputs, why would an attribute be added to a call to printf?</div><br></div><div>-Chris</div><br></body></html>