<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 2, 2009, at 12:21 PM, Misha Brukman wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi all,<br><br>Reading this doc: <a href="http://llvm.org/docs/CodingStandards.html#hl_privateheaders">http://llvm.org/docs/CodingStandards.html#hl_privateheaders</a>, it suggests putting private implementation details outside of llvm/include/* to avoid polluting the public header space.  This makes sense, and it works fine, because make enters every directory and hence doesn't need a -I path to include them.<br> <br>However, unittests need to also #include these headers to be able to test the internal implementations, so here are potential ways to do this:<br>1) Leave headers where they are now; pass in -I$(LLVM_SRC_ROOT) and #include "lib/Transform/..." for the unittests<br> 2) Same as above, except with -I$(LLVM_SRC_ROOT)/lib and #include "Transform/..."<br>3) Create a new header directory for internal headers, e.g. llvm/include/llvm/internal/ and put private headers there; no one needs any new -I switches, implementation libraries and unittests all say #include "llvm/internal/*" and all is well.  If there's a concern that we are distributing/installing private headers, we can amend the install script to "rm -rf llvm/include/internal" to avoid the issue.<br></blockquote></div><br><div>Do you have a specific example of a unit test that would need these?  I really think these should stay private.</div><div><br></div><div>-Chris </div></body></html>