diff options
author | Mandeep Singh Grang <mgrang@quicinc.com> | 2019-05-24 19:24:08 +0000 |
---|---|---|
committer | Mandeep Singh Grang <mgrang@quicinc.com> | 2019-05-24 19:24:08 +0000 |
commit | 6d0f28c0841eecb958449aad72ab87bbf406b95e (patch) | |
tree | 988c7bbf905cb67f8403b801e5af3a75a6cb5c75 /www | |
parent | afa4c645e14ff0a0c68d3072d45a3df2ca0b46ed (diff) | |
download | clang-6d0f28c0841eecb958449aad72ab87bbf406b95e.tar.gz |
[Analyzer] Checker for non-determinism caused by iteration of unordered container of pointers
Summary: Added a checker for non-determinism caused by iterating unordered containers like std::unordered_set containing pointer elements.
Reviewers: NoQ, george.karpenkov, whisperity, Szelethus, baloghadamsoftware
Reviewed By: Szelethus
Subscribers: mgorny, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, jdoerfert, Charusso, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D59279
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361664 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'www')
-rw-r--r-- | www/analyzer/alpha_checks.html | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/www/analyzer/alpha_checks.html b/www/analyzer/alpha_checks.html index d406b2c755..91ced37571 100644 --- a/www/analyzer/alpha_checks.html +++ b/www/analyzer/alpha_checks.html @@ -1068,6 +1068,24 @@ void test(char *y) { <thead><tr><td>Name, Description</td><td>Example</td></tr></thead> <tbody> +<tr><td><a id="alpha.nondeterminism.PointerIteration"><div class="namedescr expandable"><span class="name"> +alpha.nondeterminism.PointerIteration</span><span class="lang"> +(C++)</span><div class="descr"> +Check for non-determinism caused by iterating unordered containers of pointers.</div></div></a></td> +<td><div class="exampleContainer expandable"> +<div class="example"><pre> +// C++ +void test() { + int a = 1, b = 2; + std::unordered_set<int *> UnorderedPtrSet = {&a, &b}; + + for (auto i : UnorderedPtrSet) // warn + f(i); +} +</pre></div></div></td></tr> +</tbody></table> + +<tbody> <tr><td><a id="alpha.nondeterminism.PointerSorting"><div class="namedescr expandable"><span class="name"> alpha.nondeterminism.PointerSorting</span><span class="lang"> (C++)</span><div class="descr"> |