[clang] [analyzer] Add documentation for std::variant checker (PR #76501)

Gábor Spaits via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 28 08:08:29 PST 2023


https://github.com/spaits updated https://github.com/llvm/llvm-project/pull/76501

>From daec81389ccaa23f6f8c75abac9a2f827d4c0fcd Mon Sep 17 00:00:00 2001
From: Gabor Spaits <gaborspaits1 at gmail.com>
Date: Thu, 28 Dec 2023 14:17:55 +0100
Subject: [PATCH] [analyzer] Add documentation for std::variant checker

---
 clang/docs/analyzer/checkers.rst | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/clang/docs/analyzer/checkers.rst b/clang/docs/analyzer/checkers.rst
index 64a4752695f11f..94c712f63d5ba3 100644
--- a/clang/docs/analyzer/checkers.rst
+++ b/clang/docs/analyzer/checkers.rst
@@ -2095,6 +2095,21 @@ This checker is a part of ``core.StackAddressEscape``, but is temporarily disabl
                  //       returned block
  }
 
+.. _alpha-core-StdVariant:
+
+alpha.core.StdVariant (C++)
+"""""""""""""""""""""""""""
+Check if a value of active type is retrieved from an ``std::variant`` instance with ``std::get``.
+In case of bad variant type access(the accessed type differs from the active type)
+a warning is emitted. Currently this checker does not take exception handling into account.
+
+.. code-block:: cpp
+
+ void test() {
+   std::variant <int, char> v = 25;
+   char c = stg::get<char>(v); // warn
+ }
+
 .. _alpha-core-TestAfterDivZero:
 
 alpha.core.TestAfterDivZero (C)



More information about the cfe-commits mailing list