<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/docs/analyzer, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[NFC][analyzer] Add missing documentation for `decodeValueOfObjCType` (#167822)</title>
<updated>2025-11-17T12:28:02+00:00</updated>
<author>
<name>mitchell</name>
<email>mitchell.xu2@gmail.com</email>
</author>
<published>2025-11-17T12:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c2ddaaa4255cd4ab82eb9be6b1ac1842ec1e4edd'/>
<id>c2ddaaa4255cd4ab82eb9be6b1ac1842ec1e4edd</id>
<content type='text'>
This check is introduced in
https://github.com/llvm/llvm-project/commit/b284005072122fe4af879725e3c8090009f89ca0,
but the documentation seems missing from `checkers.rst`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This check is introduced in
https://github.com/llvm/llvm-project/commit/b284005072122fe4af879725e3c8090009f89ca0,
but the documentation seems missing from `checkers.rst`.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][analyzer] Remove empty alpha.security.cert checker category (#163606)</title>
<updated>2025-10-16T14:36:43+00:00</updated>
<author>
<name>Endre Fülöp</name>
<email>endre.fulop@sigmatechnology.com</email>
</author>
<published>2025-10-16T14:36:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=919395bf463c251f595a728bde1cccfc79c5a28a'/>
<id>919395bf463c251f595a728bde1cccfc79c5a28a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][analyzer] Add checker 'core.NullPointerArithm' (#157129)</title>
<updated>2025-10-16T06:44:56+00:00</updated>
<author>
<name>Balázs Kéri</name>
<email>balazs.keri@ericsson.com</email>
</author>
<published>2025-10-16T06:44:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8570ba2d87eb4877c428fa616b6fe4141684e467'/>
<id>8570ba2d87eb4877c428fa616b6fe4141684e467</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][analyzer] Print empty per-EP metrics as empty CSV cells, fix missing PathRunningTime metric (#162839)</title>
<updated>2025-10-13T15:18:27+00:00</updated>
<author>
<name>Arseniy Zaostrovnykh</name>
<email>necto.ne@gmail.com</email>
</author>
<published>2025-10-13T15:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bb3b0203c0fb25a2aa0712b44c78562dd2021b83'/>
<id>bb3b0203c0fb25a2aa0712b44c78562dd2021b83</id>
<content type='text'>
To avoid information loss, introduce a difference between unset stats
and 0 for statistics that are supposed to be set once per entry point.
Now, if the statistic is not set for an entry point, the corresponding
CSV cell will be empty, and not 0.

Thanks to this differentiation, I noticed that `PathRunningTime` was
actually never set, and fixed that.
Additionally, this patch enables the timers if
`DumpEntryPointStatsToCSV` is set, because in most cases you dump these
stats to get a detailed view on analyzer performance.

Finally, I added a dedicated debug checker that demonstrates the use of
a statistic and tested the set and unset scenarios explicitly.

--

CPP-7097

---------

Co-authored-by: Donát Nagy &lt;donat.nagy@ericsson.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To avoid information loss, introduce a difference between unset stats
and 0 for statistics that are supposed to be set once per entry point.
Now, if the statistic is not set for an entry point, the corresponding
CSV cell will be empty, and not 0.

Thanks to this differentiation, I noticed that `PathRunningTime` was
actually never set, and fixed that.
Additionally, this patch enables the timers if
`DumpEntryPointStatsToCSV` is set, because in most cases you dump these
stats to get a detailed view on analyzer performance.

Finally, I added a dedicated debug checker that demonstrates the use of
a statistic and tested the set and unset scenarios explicitly.

--

CPP-7097

---------

Co-authored-by: Donát Nagy &lt;donat.nagy@ericsson.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][analyzer] Remove boolean per-entry-point metrics (#162817)</title>
<updated>2025-10-10T12:53:16+00:00</updated>
<author>
<name>Arseniy Zaostrovnykh</name>
<email>necto.ne@gmail.com</email>
</author>
<published>2025-10-10T12:53:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e297184ba1b6f3683ba3e8f6197876b22c90ff7d'/>
<id>e297184ba1b6f3683ba3e8f6197876b22c90ff7d</id>
<content type='text'>
The complexity of maintaining an extra kind of metrics have not
justified itself, as it is not used upstream, and we have only a single
use of boolean stats per entrypoint downstream.

As I will do downstream, you can use an unsigned statistic type with
values 0 and 1 to model a boolean flag.

--

CPP-7097</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The complexity of maintaining an extra kind of metrics have not
justified itself, as it is not used upstream, and we have only a single
use of boolean stats per entrypoint downstream.

As I will do downstream, you can use an unsigned statistic type with
values 0 and 1 to model a boolean flag.

--

CPP-7097</pre>
</div>
</content>
</entry>
<entry>
<title>[analyzer] Teach -analyze-function about USRs, extend documentation (#161666)</title>
<updated>2025-10-03T14:24:03+00:00</updated>
<author>
<name>Balazs Benics</name>
<email>benicsbalazs@gmail.com</email>
</author>
<published>2025-10-03T14:24:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ef4471edfa6d72e13c8f8e90bef521caee6f4b1f'/>
<id>ef4471edfa6d72e13c8f8e90bef521caee6f4b1f</id>
<content type='text'>
This flag is really convinient in most cases.
It's easy to figure out what value to pass for most cases. However, it
can sometimes match too many times, like for template functions that has
non-decuded (aka. explicitly specified) template parameters - because
they don't appear in the parameter list, thus they are not accounted for
in the current logic.

It would be nice to improve `getFunctionName` but I'd say to just settle
on using USRs. So this PR enables passing USRs to the flag, while
keeping previous behavior.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This flag is really convinient in most cases.
It's easy to figure out what value to pass for most cases. However, it
can sometimes match too many times, like for template functions that has
non-decuded (aka. explicitly specified) template parameters - because
they don't appear in the parameter list, thus they are not accounted for
in the current logic.

It would be nice to improve `getFunctionName` but I'd say to just settle
on using USRs. So this PR enables passing USRs to the flag, while
keeping previous behavior.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebKit checkers] Add the support for OSObjectPtr (#159484)</title>
<updated>2025-09-19T04:46:22+00:00</updated>
<author>
<name>Ryosuke Niwa</name>
<email>rniwa@webkit.org</email>
</author>
<published>2025-09-19T04:46:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9d933c794af32362dbbbefe53825054b533d7b2c'/>
<id>9d933c794af32362dbbbefe53825054b533d7b2c</id>
<content type='text'>
Add the support for OSObjectPtr, which behaves like RetainPtr.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the support for OSObjectPtr, which behaves like RetainPtr.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][analyzer] Fix copypaste error in security.VAList docs (#157440)</title>
<updated>2025-09-08T12:46:59+00:00</updated>
<author>
<name>Donát Nagy</name>
<email>donat.nagy@ericsson.com</email>
</author>
<published>2025-09-08T12:46:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5f7b9f6f4a44f9c25e79c7166a6cabe8b376dd05'/>
<id>5f7b9f6f4a44f9c25e79c7166a6cabe8b376dd05</id>
<content type='text'>
My recent commit a80c393a9c498279a1ec9fd630535b9ff139b49f accidentally
added a paragraph which does not belong to the new documentation of the
checker `security.VAList`; this commit corrects this mistake.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
My recent commit a80c393a9c498279a1ec9fd630535b9ff139b49f accidentally
added a paragraph which does not belong to the new documentation of the
checker `security.VAList`; this commit corrects this mistake.</pre>
</div>
</content>
</entry>
<entry>
<title>[analyzer] Consolidate the va_list checkers (#156682)</title>
<updated>2025-09-08T11:16:24+00:00</updated>
<author>
<name>Donát Nagy</name>
<email>donat.nagy@ericsson.com</email>
</author>
<published>2025-09-08T11:16:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a80c393a9c498279a1ec9fd630535b9ff139b49f'/>
<id>a80c393a9c498279a1ec9fd630535b9ff139b49f</id>
<content type='text'>
Previously the analyzer had an undocumented top-level checker group
called `valist` which offered several checkers to detect use of
uninitialized `va_list` objects and leaks of `va_list`s.

As the responsibilities of these checkers were messily intertwined and
`va_list` is a rarely used language feature, this commit simplifies the
situation by consolidating these checkers into a single checker which
will be called `security.VAList`.

Note that I'm choosing the capitalization `VAList` to be consistent with
the example of the AST node type `VAArgExpr`. I updated many variable
names to ensure that `ValistChecker.cpp` uses this spelling everywhere
(in CamelCased names). I'm planning to rename `ValistChecker.cpp` to
`VAListChecker.cpp` in a follow-up commit.

This commit also adds documentation for this checker in checkers.rst.

Among the test files I preserved the existing separation but I
eliminated some duplicated cases now that there is no way to separately
enable the old sub-checkers.

For the background of this change see also the discourse thread
https://discourse.llvm.org/t/clean-up-valist-checkers/85277/3</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously the analyzer had an undocumented top-level checker group
called `valist` which offered several checkers to detect use of
uninitialized `va_list` objects and leaks of `va_list`s.

As the responsibilities of these checkers were messily intertwined and
`va_list` is a rarely used language feature, this commit simplifies the
situation by consolidating these checkers into a single checker which
will be called `security.VAList`.

Note that I'm choosing the capitalization `VAList` to be consistent with
the example of the AST node type `VAArgExpr`. I updated many variable
names to ensure that `ValistChecker.cpp` uses this spelling everywhere
(in CamelCased names). I'm planning to rename `ValistChecker.cpp` to
`VAListChecker.cpp` in a follow-up commit.

This commit also adds documentation for this checker in checkers.rst.

Among the test files I preserved the existing separation but I
eliminated some duplicated cases now that there is no way to separately
enable the old sub-checkers.

For the background of this change see also the discourse thread
https://discourse.llvm.org/t/clean-up-valist-checkers/85277/3</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][analyzer] Remove checker 'alpha.core.CastSize' (#156350)</title>
<updated>2025-09-03T06:53:12+00:00</updated>
<author>
<name>Balázs Kéri</name>
<email>balazs.keri@ericsson.com</email>
</author>
<published>2025-09-03T06:53:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=90865906dd2d42311901ce8a567bb992a169860d'/>
<id>90865906dd2d42311901ce8a567bb992a169860d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
