<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    The "0x4aa1c58" part of "lazyCompoundVal{0x4aa1c58,pos1}" is a Store
    object. You can access it with getStore() and then read it with the
    help of a StoreManager.<br>
    <br>
    Hmm, we seem to already have a convenient API for that, you can do
    StoreManager::getDefaultBinding(nonloc::LazyCompoundVal) directly if
    all you need is a default-bound conjured symbol. But if you want to
    lookup, say, specific fields in the structure (X and Y separately),
    you'll need to do getBinding() on manually constructed FieldRegions
    (in your case it doesn't look very useful because the whole
    structure is conjured anyway).<br>
    <br>
    I guess at this point you might like the chapter 5 of my old
    workbook
(<a class="moz-txt-link-freetext" href="https://github.com/haoNoQ/clang-analyzer-guide/releases/download/v0.1/clang-analyzer-guide-v0.1.pdf">https://github.com/haoNoQ/clang-analyzer-guide/releases/download/v0.1/clang-analyzer-guide-v0.1.pdf</a>),
    as for now it seems to be the only place where different kinds of
    values are explained.<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 6/25/19 2:35 AM, Torry Chen via
      cfe-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CADmWND8g5cRyj+ga80+4W8oOtgCA=Z0hYueBty=xQ1XKf6NPYQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">My project has a struct type as follows and I'm
        writing a checker for some functions that take the struct value
        as an argument. In the checkPreCall function I see the argument
        is an LazyCompoundVal, not a symbol as it would be for a
        primitive type. I tried a few ways to extract the symbol from
        the LazyCompountVal with no luck. Hope to get some help here.<br>
        <br>
        <font face="courier new, monospace">struct XY {<br>
            uint64_t X;<br>
            uint64_t Y;<br>
          };<br>
          <br>
          ...<br>
          // checkBind: pos1 -> conj_$3{struct XY, LC1, S63346, #1}</font>
        <div><span style="font-family:"courier new",monospace">struct
            XY pos1 = next_pos(...);</span>  <font face="courier new,
            monospace"><br>
            <br>
            // checkPreCall: Arg0: lazyCompoundVal{0x4aa1c58,pos1}<br>
            move_to_pos(pos1);</font><br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
cfe-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>