diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2010-12-02 09:51:41 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2010-12-02 09:51:41 -0500 |
commit | 81f14d2e9469a0e832c84e1f28de270a5b7b0c44 (patch) | |
tree | e33eb68c8000cecd7df86049848eb4f84e5fa114 | |
parent | 914cb86f8b67b8d5a9703faf6f9eb9c2ce42a095 (diff) | |
download | deheader-81f14d2e9469a0e832c84e1f28de270a5b7b0c44.tar.gz deheader-81f14d2e9469a0e832c84e1f28de270a5b7b0c44.tar.bz2 deheader-81f14d2e9469a0e832c84e1f28de270a5b7b0c44.tar.xz deheader-81f14d2e9469a0e832c84e1f28de270a5b7b0c44.zip |
Document limitations.
-rw-r--r-- | deheader.xml | 28 |
1 files 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.</para> -<para>Test-compiling after running with <option>-r</option> will -sometimes show that this tool removed some headers that are actually -required for your build. This happens because -<command>deheader</command> 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.</para> - <para>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.</para> </variablelist> </refsect1> +<refsect1 id='bugs'><title>BUGS</title> + +<para>Test-compiling after running with <option>-r</option> will +sometimes show that this tool removed some headers that are actually +required for your build. This happens because +<command>deheader</command> 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.</para> + +<para>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.</para> + +</refsect1> + <refsect1 id='author'><title>AUTHOR</title> <para>Eric S. Raymond <email>esr@snark.thyrsus.com</email>; (home page at <ulink url='http://www.catb.org/~esr/'>http://www.catb.org/~esr/</ulink>).</para> |