<p dir="ltr">I imagine that would be difficult. If you pass the resulting pointer out to unknown code/functions, there's nothing to stop that code from walking backwards from the pointer and having well defined behavior of observing the prefix you tried to hide.</p>
<p dir="ltr">Essentially the compiler would have to be able to see and analyze all uses of that pointer in one go before it could optimize away the prefix.</p>
<div class="gmail_quote">On Sep 19, 2014 8:41 PM, "Iritscen" <<a href="mailto:iritscen@yahoo.com">iritscen@yahoo.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello all. Is there a way to get llvm/clang at build-time to optimize a string.h call so that the final form of the string is saved in the binary? For instance, for a statement like...<br>
<br>
strrchr(__FILE__, '/') + 1<br>
<br>
…and where clang is called on this code’s source file with “clang /some/long/path/file.c”, can I end up with only “file.c” stored in the binary on disk? I think you can see that I am attempting to avoid full paths from my machine ending up in the program. My IDE, Xcode, always passes full paths to clang when building. Thanks.<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div>