Skip to content

Commit

Permalink
[NFC][analyzer][docs] Restore/remove orphaned images
Browse files Browse the repository at this point in the history
When commit 61a76f5 converted the static analyzer FAQ from HTML to
RST, it accidentally left out three images (`example_*.png`) that were
previously present in that document. This commit re-adds those three
images to the FAQ (and moves them to the directory for the image assets
of the RST documentation).

Moreover commit 093aaca _copied_ the file `scan_build_cmd.png` to
the RST documentation directory instead of just moving it; so this
commit removes its "old" copy which is no longer used (because the old
HTML-based documentation file was replaced by a stub that redirects to
the RST docs).
  • Loading branch information
NagyDonat committed Jan 13, 2025
1 parent 56c5a6b commit 161b668
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion clang/docs/analyzer/user-docs/FAQ.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ Custom Assertions

Q: How do I tell the analyzer that I do not want the bug being reported here since my custom error handler will safely end the execution before the bug is reached?

You can tell the analyzer that this path is unreachable by teaching it about your `custom assertion handlers <annotations.html#custom_assertions>`_. For example, you can modify the code segment as following:
.. image:: ../images/example_custom_assert.png

You can tell the analyzer that this path is unreachable by teaching it about your `custom assertion handlers <Annotations.html#custom-assertion-handlers>`__. For example, you can modify the code segment as following:

.. code-block:: c
Expand All @@ -25,6 +27,8 @@ Null Pointer Dereference

Q: The analyzer reports a null dereference, but I know that the pointer is never null. How can I tell the analyzer that a pointer can never be null?

.. image:: ../images/example_null_pointer.png

The reason the analyzer often thinks that a pointer can be null is because the preceding code checked compared it against null. If you are absolutely sure that it cannot be null, remove the preceding check and, preferably, add an assertion as well. For example:

.. code-block:: c
Expand Down Expand Up @@ -143,6 +147,8 @@ Ensuring Loop Body Execution

Q: The analyzer assumes that a loop body is never entered. How can I tell it that the loop body will be entered at least once?

.. image:: ../images/example_use_assert.png

In cases where you know that a loop will always be entered at least once, you can use assertions to inform the analyzer. For example:

.. code-block:: c
Expand Down
Binary file removed clang/www/analyzer/images/scan_build_cmd.png
Binary file not shown.

0 comments on commit 161b668

Please sign in to comment.