[NFC][analyzer][docs] Restore/remove orphaned images (#122481)
When commit61a76f58ebconverted 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 commit093aaca2b0_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).
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
@@ -9,6 +9,8 @@ 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?
|
||||
|
||||
.. 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 29 KiB |