From: Vedant Kumar Date: Mon, 6 Jun 2016 15:44:40 +0000 (+0000) Subject: [docs] Clarify limitations section of SourceBasedCodeCoverage.rst X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=23c6d52113fa8ed14e98b7e5079b20b7691c8dac;p=clang [docs] Clarify limitations section of SourceBasedCodeCoverage.rst Mention that the code coverage tool becomes less precise whenever unpredictable changes in control flow occur. Thanks to Sean Silva for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271902 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/SourceBasedCodeCoverage.rst b/docs/SourceBasedCodeCoverage.rst index 0586f2ec84..75ab258e8f 100644 --- a/docs/SourceBasedCodeCoverage.rst +++ b/docs/SourceBasedCodeCoverage.rst @@ -188,8 +188,9 @@ Format compatibility guarantees Drawbacks and limitations ========================= -* Code coverage does not handle stack unwinding in the presence of uncaught - exceptions precisely. Consider the following function: +* Code coverage does not handle unpredictable changes in control flow or stack + unwinding in the presence of exceptions precisely. Consider the following + function: .. code-block:: cpp @@ -198,6 +199,6 @@ Drawbacks and limitations return 0; } - If the function ``may_throw()`` propagates an exception into ``f``, the code + If the call to ``may_throw()`` propagates an exception into ``f``, the code coverage tool may mark the ``return`` statement as executed even though it is - not. + not. A call to ``longjmp()`` can have similar effects.