doc/develop/sca/sparse.rst
.. _sparse:
Sparse support ##############
Sparse <https://www.kernel.org/doc/html/latest/dev-tools/sparse.html>__
is a static code analysis tool.
Apart from performing common code analysis tasks it also supports an
address_space attribute, which allows introduction of distinct address
spaces in C code with subsequent verification that pointers to different
address spaces do not get confused. Additionally it supports a force
attribute which should be used to cast pointers between different address
spaces. At the moment Zephyr introduces a single custom address space
__cache used to identify pointers from the cached address range on the
Xtensa architecture. This helps identify cases where cached and uncached
addresses are confused.
Running with sparse
To run a sparse verification build :ref:west build <west-building> should be
called with a -DZEPHYR_SCA_VARIANT=sparse parameter, e.g.
.. code-block:: shell
west build -d hello -b intel_adsp/cavs25 zephyr/samples/hello_world -- -DZEPHYR_SCA_VARIANT=sparse