<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
*repeats without overquoting in order to avoid hitting the mailing
list message length limit*<br>
<br>
<div class="moz-cite-prefix">On 7/23/19 7:29 PM, Artem Dergachev
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:420287a9-7708-06b3-e2c0-04266dfb6277@gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Xerces - DOMRangeImpl.cpp: Ugh, are those "Value assigned to..."
notes triggered by invalidation? I have a plan of my own to wipe
such notes out (or at least formulate them more carefully), so i
guess it's not an action item for you (nor much of a regression),
but still ugh. Another thing to think about for those is to
suppress the warning entirely when a region that stores is
important condition is first assumed to contain false, then
invalidated, then assumed to contain true.<br>
<br>
Xerces - XMLString.hpp: Mmm, i guess passing unconstrained values
as parameters is also not very meaningful. It doesn't look like
it's a *big* problem, but i guess it's worth considering fixing
eventually.<br>
<br>
<br>
> Assert conditions are not yet ignored, I have a neat solution
locally<br>
<br>
Just to make sure - do you have a test case with control flow
within the condition, eg. `assert((a || b) && "the
universe is collapsing")`?<br>
<br>
<br>
<div class="moz-cite-prefix">On 7/23/19 12:49 PM, Kristóf Umann
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAGcXOD6WiXeJ3vZRz+FS+h-13KYMupW4LnsKF0mROqV7X9Ujcg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<div dir="ltr">
<div dir="ltr">I'm happy to delight you all with some more
results! I was far more strict on my judgement this time
around, marking a report good when I genuinely believed that
the note made the report better.
<div><br>
</div>
<div>All the runs were made on monorepo commit <span
style="color:rgb(0,0,0);font-family:Geneva,Arial,Helvetica,sans-serif;font-size:13.3333px;background-color:rgb(247,252,255)">db4e335b8643056f5afa2a0d8d175d95b1fb7e28</span>
with the following patches applied:<br>
<br>
BEFORE tracking condition: Without any changes being
made, default CodeChecker settings.</div>
<div>AFTER tracking conditions: Without any changes being
made, track-conditions set to true.</div>
<div>AFTER tracking conditions + DEBUG notes: Without any
changes being made, track-conditions and
track-conditions-debug set to true.</div>
<div>AFTER linear pruning (or similar run name): [1]
applied, track-conditions set to true</div>
AFTER tracking conditions WITH improved moderation: [1, 2,
3, 4] applied, track-conditions set to true (stupid name but
it's gonna stay like this for now :) )<br
class="gmail-Apple-interchange-newline">
AFTER tracking conditions WITH improved moderation: [1, 2,
3, 4] applied, track-conditions and
track-conditions-debug set to true
<div><span style="font-variant-numeric:normal;font-variant-east-asian:normal;background-color:transparent;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap">
[1] </span><a href="https://reviews.llvm.org/D64232"
style="text-decoration-line:none" moz-do-not-send="true"><span style="font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://reviews.llvm.org/D64232</span></a><span style="font-variant-numeric:normal;font-variant-east-asian:normal;background-color:transparent;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap"> [analyzer] Prune calls to functions with linear CFGs that return a non-zero constrained value</span> <br>
</div>
<div>[2] <a href="https://reviews.llvm.org/D64287"
moz-do-not-send="true">https://reviews.llvm.org/D64287</a> [analyzer]
Track the right hand side of the last store regardless of
its value</div>
<div><span
id="gmail-docs-internal-guid-6633fc6c-7fff-4cb0-ba03-da8b5433cf09">
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[3] </span><a
href="https://reviews.llvm.org/D64270"
style="text-decoration-line:none"
moz-do-not-send="true"><span style="font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://reviews.llvm.org/D64270</span></a><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> [analyzer][NFC] Prepare visitors for different tracking kinds</span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[4] </span><a
href="https://reviews.llvm.org/D64272"
style="text-decoration-line:none"
moz-do-not-send="true"><span style="font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">https://reviews.llvm.org/D64272</span></a><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> [analyzer] Note last writes to a condition only in a nested stackframe</span></p>
</span>
<div>
<div>
<div><br>
</div>
<div>LLVM/Clang (no longer analyzing
clang-tools-extra): <a
href="http://cc.elte.hu:15001/GSoC2019-July-5/#run=LLVM%2FClang%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&review-status=Confirmed&review-status=False%20positive&review-status=Intentional&detection-status=New&detection-status=Reopened&detection-status=Unresolved&tab=LLVM%2FClang%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&is-unique=on"
moz-do-not-send="true">http://cc.elte.hu:15001/GSoC2019-July-5/#run=LLVM%2FClang%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&review-status=Confirmed&review-status=False%20positive&review-status=Intentional&detection-status=New&detection-status=Reopened&detection-status=Unresolved&tab=LLVM%2FClang%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&is-unique=on</a></div>
<div><br>
</div>
<div>Bitcoin: <a
href="http://cc.elte.hu:15001/GSoC2019-July-5/#run=Bitcoint%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&review-status=Confirmed&review-status=False%20positive&review-status=Intentional&detection-status=New&detection-status=Reopened&detection-status=Unresolved&tab=Bitcoint%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&is-unique=on"
moz-do-not-send="true">http://cc.elte.hu:15001/GSoC2019-July-5/#run=Bitcoint%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&review-status=Confirmed&review-status=False%20positive&review-status=Intentional&detection-status=New&detection-status=Reopened&detection-status=Unresolved&tab=Bitcoint%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&is-unique=on</a></div>
</div>
<div><br>
</div>
<div>Xerces: <a
href="http://cc.elte.hu:15001/GSoC2019-July-5/#run=Xerces%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&review-status=Confirmed&review-status=False%20positive&review-status=Intentional&detection-status=New&detection-status=Reopened&detection-status=Unresolved&tab=Xerces%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&is-unique=on"
moz-do-not-send="true">http://cc.elte.hu:15001/GSoC2019-July-5/#run=Xerces%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&review-status=Confirmed&review-status=False%20positive&review-status=Intentional&detection-status=New&detection-status=Reopened&detection-status=Unresolved&tab=Xerces%20AFTER%20condition%20tracking%20WITH%20improved%20moderation&is-unique=on</a></div>
</div>
</div>
<div><br>
</div>
<div>Some conclusions:</div>
<div>
<ul>
<li>[4] Actually notes last writes in <i>different</i>,
not <i>nested</i> stack frames. Gotta fix that.</li>
<li>[1] Returning an unconstrained value when the
function is linear is <b>never</b> meaningful. Not
for conditions, not for anything else. Gotta fix that
too. It's worth talking about whether we should prune
these for conditions even if the function isn't
linear.</li>
<li>[1] This one gets rid of almost all the operator
bool calls. Maybe in the rare case it doesn't, we
should preserve them? I always planned to get rid of
calls to operator bool, but now I'm hesitant.</li>
<li>Assert conditions are not yet ignored, I have a neat
solution locally, but I haven't published or tested it
yet.</li>
</ul>
<div>There honestly isn't that much I have on my mind, I
think after the next round of analyses we should be
good! I really should've made an analysis with all the
non-condition tracking changes to get an even better
perspective, so I'll do that next time.</div>
</div>
</div>
<br>
</div>
</blockquote>
</blockquote>
<br>
</body>
</html>