Hello,<div dir="auto"><br></div><div dir="auto">I’m familiar with LLVM API and IR but not well versed in clang intervals.<br><div dir="auto"><br></div><div dir="auto">I’m trying to figure out how the lookup table implementation works in clang.</div><div dir="auto"><br></div><div dir="auto">To be specific, I’m trying to figure out how forward declaration -> use -> definition is handled.</div><div dir="auto"><br></div><div dir="auto">For example.</div><div dir="auto"><br></div><div dir="auto">Struct A;// declared- added to table?</div><div dir="auto"><br></div><div dir="auto">// B created with pointer to A and added to table?</div><div dir="auto">Struct B {</div><div dir="auto">       A *a;</div><div dir="auto">} </div><div dir="auto"><br></div><div dir="auto">// does B get updated?</div><div dir="auto">Struct A {</div><div dir="auto">      Type bar;</div><div dir="auto">}</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Is there any documentation available to figure out the clang internals to know where to start looking to figure this out?</div><div dir="auto"><br></div><div dir="auto">I’m guessing type system( to understand relation between declared and defined types) and lookup table implementation should be a good starting point to figure out how it works. Suggestions?</div><div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto">Deepak</div></div>