summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorMandeep Singh Grang <mgrang@quicinc.com>2019-05-24 19:24:08 +0000
committerMandeep Singh Grang <mgrang@quicinc.com>2019-05-24 19:24:08 +0000
commit6d0f28c0841eecb958449aad72ab87bbf406b95e (patch)
tree988c7bbf905cb67f8403b801e5af3a75a6cb5c75 /www
parentafa4c645e14ff0a0c68d3072d45a3df2ca0b46ed (diff)
downloadclang-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.html18
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">