<div dir="ltr"><div>I feel like this talk is slightly related to this topic: <a href="https://www.youtube.com/watch?v=yh2qdnJjizE">https://www.youtube.com/watch?v=yh2qdnJjizE</a></div><div><br></div><div>Wanted to share just in case :) <br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 24 Jun 2020 at 11:40, Artem Dergachev via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    (re-add cfe-dev)<br>
    <br>
    <div>On 6/23/20 8:10 AM,
      <a href="mailto:philip.chimento@gmail.com" target="_blank">philip.chimento@gmail.com</a> wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Sun, Jun 21, 2020 at 1:57
            AM Artem Dergachev <<a href="mailto:noqnoqneo@gmail.com" target="_blank">noqnoqneo@gmail.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div>Extra notes are annoying and potentially confusing but
              they're technically correct so it's not too bad.<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>Indeed. :-)<br>
          </div>
        </div>
        <div class="gmail_quote"><br>
        </div>
        <div class="gmail_quote">[...]<br>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div> Another example:<br>
              <br>
              void f() {<br>
                bool bar = false;<br>
                if (!someResult())<br>
                  bar = true;<br>
              <br>
                int foo = 2;<br>
                if (bar)<br>
                  foo = 3;<br>
              <br>
                neverCallThisAPIWith3(foo);<br>
              }<br>
              <br>
              In this case you'd want most likely want to keep the
              entire path even though foo wasn't even declared at the
              first note.<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>I could imagine a BugReporterVisitor that would mark
            'foo' as an "interesting" variable, then add itself again to
            mark 'bar' as interesting when encountering a store to 'foo'
            that depends on 'bar', and then another visitor that would
            prune notes before any "interesting" points... but this is
            just a handwavy idea, you and others have probably thought
            properly about this :-)<br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Yes, that's a fairly accurate description of the plan that we have
    on that front, and we already have that information for that
    particular example (with slight differences - say, variable 'foo'
    isn't interesting on its own, but assignment 'foo = 3' is).<br>
    <br>
    There's still a lot of work to do before we're confident that we
    actually mark up all the interesting information in all cases, which
    is necessary to actually start pruning path segments. In many cases
    it's crucial to know what *hasn't* happened on the path (but *could
    have* happened if a slightly different path was taken), which is
    hard to mark up this way because there's no event to mark up because
    it didn't happen in the first place (the other path is not even
    necessarily explored at all). So for now it's better to play safe.<br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>Regards,<br>
        </div>
        -- <br>
        <div dir="ltr">Philip</div>
      </div>
    </blockquote>
    <br>
  </div>

_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>