[LLVMdev] Private headers and testing

Misha Brukman brukman at gmail.com
Fri Jan 2 12:21:27 PST 2009


Hi all,

Reading this doc:
http://llvm.org/docs/CodingStandards.html#hl_privateheaders, 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.

However, unittests need to also #include these headers to be able to test
the internal implementations, so here are potential ways to do this:
1) Leave headers where they are now; pass in -I$(LLVM_SRC_ROOT) and #include
"lib/Transform/..." for the unittests
2) Same as above, except with -I$(LLVM_SRC_ROOT)/lib and #include
"Transform/..."
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.

Thoughts/comments?

Misha
(I'm voting #3)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090102/1f334826/attachment.html>


More information about the llvm-dev mailing list