From 81f14d2e9469a0e832c84e1f28de270a5b7b0c44 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 2 Dec 2010 09:51:41 -0500 Subject: Document limitations. --- deheader.xml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/deheader.xml b/deheader.xml index 8db4ed0..4e227ee 100644 --- a/deheader.xml +++ b/deheader.xml @@ -49,14 +49,6 @@ directives are left alone, because trying to reason about potential combinations of -D and U options would be too complicated and prone to weird errors. -Test-compiling after running with will -sometimes show that this tool removed some headers that are actually -required for your build. This happens because -deheader doesn't know about all the strange thungs -your build system gets up to, and the problem of analyzing it to -undertand them would be Turing-complete. Simply revert the altered -files and continue. - It is recommended that you arrange to compile with options that will stop the compiler on warnings when using this tool; otherwise it will be report headers that only declare prototypes and return types @@ -127,6 +119,26 @@ Takes a Python regular expression. +BUGS + +Test-compiling after running with will +sometimes show that this tool removed some headers that are actually +required for your build. This happens because +deheader doesn't know about all the strange thungs +your build system gets up to, and the problem of analyzing it to +undertand them would be Turing-complete. Simply revert the altered +files and continue. + +Sufficiently perverse C++ can silently invalidate the simple +algorithm this tool uses. Example: if an overloaded function has +different overloads from two different files, removing one may expose +the other, changing runtime semantics without a compile-time warning. +Similarly, removing a later file containing a template specialization +may lead to undefined behavior from a template defined in an earlier +file. Use this with caution near such features, and test carefully. + + + AUTHOR Eric S. Raymond esr@snark.thyrsus.com; (home page at http://www.catb.org/~esr/). -- cgit v1.2.3-70-g09d2