<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 19, 2013 at 11:14 AM, Manman Ren <span dir="ltr"><<a href="mailto:mren@apple.com" target="_blank">mren@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div>On Jul 18, 2013, at 9:58 PM, David Blaikie wrote:</div><br><blockquote type="cite">
<p dir="ltr">><br></p></blockquote></div><div><blockquote type="cite"><p dir="ltr">
> > About the Verify functions, the patch modifies from Verify() to Verify(DIMap<br>
> > &). Is this interface change okay?<br>
><br>
> Again, I was hoping not to change the signature of these functions if possible.</p><p dir="ltr">Agreed. Let's drop anything from verify that needs type resolution, unless there's a good reason not to. We should move verification to a single pass at some point which could use resolution there,</p>
<div><br></div></blockquote>To verify that a type operand is indeed a DIType, we have to perform type resolution, similarly to verify that a context is indeed a context, we have to perform type lookup.</div><div>We can verify each debug info node without performing lookup, but we will not verify the links across nodes.</div>
</div></blockquote><div><br></div><div>If we rely on DebugInfoFinder to list all the context (DIScope), and then call Verify on those scopes, we can remove the check that getContext is indeed a DIScope from DIType::Verify.</div>
<div>Currently DebugInfoFinder already lists the derived types of a DIDerivedType, so there is no need to perform lookup and verify that getTypeDerivedFrom is indeed a DIType in DIDerivedType::Verify.</div><div><br></div>
<div>With the above, there is no need to pass Map to Verify functions. Let me if it sounds okay.</div><div><br></div><div>Manman</div></div></div></div>