<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Oct 27, 2008, at 7:34 AM, Ted Kremenek wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><blockquote type="cite"><br class="Apple-interchange-newline">for example, this would mean that<br></blockquote><blockquote type="cite">FunctionDecl would have to have its own NumParams field rather than<br></blockquote><blockquote type="cite">looking through its type field to find the number of parameters. Then,<br></blockquote><blockquote type="cite">order of destruction would never matter.<br></blockquote><br> Since Decls shouldn't own Types, this particular example shouldn't  <br>actually be an issue.  Are you seeing this to be a problem?  Clearly  <br>this means that Types should be destroyed after Decls are, but Types  <br>are released when ASTContext is destroyed (which in TranslationUnit,  <br>occurs after the Decls are released).</span></blockquote></div><br><div>Doug just kindly pointed me to an example where Types can depend on Decls to implement basic functionality.</div><div><br></div><div><a href="http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20081020/008535.html">http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20081020/008535.html</a></div><div><br></div><div>I now recall that this occurs in several places (such as in the Objective-C ASTs), but they don't always appear to create ownership issues.</div><div><br></div><div>I'm not quite certain what is the best solution for this.</div></body></html>