<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 16, 2016 at 6:24 AM David Come 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg">I'm a a bit puzzled. Because clang  has to know about these
      attributes later on (for looking up the symbol if used, or when
      computing the class size).</p>
    <p class="gmail_msg">it means somewhere it's done, I don't know where =/</p></div></blockquote><div>I'm not sure I follow - it does know about them, by walking through the base classes and looking at their members.<br><br>If you want to see where that walk is - try calling a function that doesn't exist, break at the code where the warning is emitted, then follow the logic that lead to that point as it walks the parent looking for names.<br><br>Also - if you're looking for record layout (how it knows which bytes to use for which members) you could look in codegen for that to see how it lays out the struct, walking all the members of the bases. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><p class="gmail_msg"> </p></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <p class="gmail_msg">Thanks.</p></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg">David<br class="gmail_msg">
    </p></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <div class="m_7743747112626956470moz-cite-prefix gmail_msg">On 15/11/2016 15:30, David Blaikie
      wrote:<br class="gmail_msg">
    </div>
    <blockquote type="cite" class="gmail_msg">
      <div dir="ltr" class="gmail_msg">I would expect you'd have to look at the base
        class, yes - the AST is, at least somewhat, a syntax tree,
        representing the code as written.</div>
      <br class="gmail_msg">
      <div class="gmail_quote gmail_msg">
        <div dir="ltr" class="gmail_msg">On Tue, Nov 15, 2016 at 2:41 AM David Come via
          cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" class="gmail_msg" target="_blank">cfe-dev@lists.llvm.org</a>>
          wrote:<br class="gmail_msg">
        </div>
        <blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br class="gmail_msg">
          <br class="gmail_msg">
          <br class="gmail_msg">
          I'm using clang and libtooling 3.9 to parse some C++ code.<br class="gmail_msg">
          <br class="gmail_msg">
          With the following snippet :<br class="gmail_msg">
          <br class="gmail_msg">
          struct A0  {<br class="gmail_msg">
             char* p;<br class="gmail_msg">
             void Z();<br class="gmail_msg">
          };<br class="gmail_msg">
          struct A : A0{<br class="gmail_msg">
             const int i;<br class="gmail_msg">
             volatile double g;<br class="gmail_msg">
          protected:<br class="gmail_msg">
             void f(){};<br class="gmail_msg">
          };<br class="gmail_msg">
          <br class="gmail_msg">
          When iterating over fields and methods on A's CXXRecordDecl in
          my visitor,<br class="gmail_msg">
          <br class="gmail_msg">
          I only get fields i and g ; and method f. I completely miss p
          and Z.<br class="gmail_msg">
          <br class="gmail_msg">
          <br class="gmail_msg">
          Is this normal ? How can I get them when looking at A's
          CXXRecordDecl ?<br class="gmail_msg">
          Do I have to iterate over A base classes and add A0's
          public/protected<br class="gmail_msg">
          members ?<br class="gmail_msg">
          <br class="gmail_msg">
          <br class="gmail_msg">
          Thanks.<br class="gmail_msg">
          <br class="gmail_msg">
          David Come<br class="gmail_msg">
          <br class="gmail_msg">
          _______________________________________________<br class="gmail_msg">
          cfe-dev mailing list<br class="gmail_msg">
          <a href="mailto:cfe-dev@lists.llvm.org" class="gmail_msg" target="_blank">cfe-dev@lists.llvm.org</a><br class="gmail_msg">
          <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br class="gmail_msg">
        </blockquote>
      </div>
    </blockquote>
    <br class="gmail_msg">
  </div>

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