[clang] [NFC][analyzer] Tweak docs of optin.core.FixedAddressDereference (PR #182036)

via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 18 06:55:51 PST 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-static-analyzer-1

@llvm/pr-subscribers-clang

Author: DonĂ¡t Nagy (NagyDonat)

<details>
<summary>Changes</summary>



---
Full diff: https://github.com/llvm/llvm-project/pull/182036.diff


1 Files Affected:

- (modified) clang/docs/analyzer/checkers.rst (+15-8) 


``````````diff
diff --git a/clang/docs/analyzer/checkers.rst b/clang/docs/analyzer/checkers.rst
index e51015655de65..05a23791a9adb 100644
--- a/clang/docs/analyzer/checkers.rst
+++ b/clang/docs/analyzer/checkers.rst
@@ -874,23 +874,30 @@ numerical value.
  void test3() {
    int (*p_function)(char, char);
    p_function = (int (*)(char, char))0x04080;
-   int x = (*p_function)('x', 'y'); // NO warning yet at functon pointer calls
+   int x = (*p_function)('x', 'y'); // no warning yet at functon pointer calls
  }
 
+Access of fixed numerical addresses can be legitimate in low-level projects
+(e.g. firmware) and hardware interop. These values are often marked as
+``volatile`` to prevent unwanted compiler optimizations)(, so this checker
+doesn't report situations where the pointee of the fixed address is
+``volatile``.
+
+If this suppression is not sufficient on a low-level project, then consider
+disabling this ``optin`` checker.) Note that null pointers will still be
+reported by :ref:`core.NullDereference <core-NullDereference>` regardless if
+the pointee is ``volatile`` or not.
+
+.. code-block:: c
+
  void volatile_pointee() {
-   *(volatile int *)0x404 = 1; // no warning: constant non-null "volatile" pointee, you must know what you are doing
+   *(volatile int *)0x404 = 1;// no warning: fixed non-null "volatile" pointee
  }
 
  void deref_volatile_nullptr() {
    *(volatile int *)0 = 1; // core.NullDereference still warns about this
  }
 
-If your project is low-level (e.g., firmware), or deals with hardware interop with a lot of genuine constant addresses, then consider disabling this checker.
-The checker automatically suppresses issues if the type of the pointee of the address is ``volatile``.
-You probably already need this to be ``volatile`` for legitimate access, so the checker suppresses such issues to avoid false-positives.
-Note that null pointers will still be reported by :ref:`core.NullDereference <core-NullDereference>`
-regardless if the pointee is ``volatile`` or not.
-
 If the analyzer option ``suppress-dereferences-from-any-address-space`` is set
 to true (the default value), then this checker never reports dereference of
 pointers with a specified address space. If the option is set to false, then

``````````

</details>


https://github.com/llvm/llvm-project/pull/182036


More information about the cfe-commits mailing list