On Wed, Nov 14, 2012 at 9:04 PM, Philip Craig <[email protected]> wrote: > On Thu, Nov 15, 2012 at 2:20 PM, Daniel Jasper <[email protected]> wrote: >> But we are not overwriting all the Traverse* methods, so I am >> thinking, we might not be overwriting one somewhere in the middle of >> the recursion and then the ones further down the chain are not called.
That shouldn't matter. If you've overridden a Traverse* function, it should be called. > All calls to methods that can be overwritten should be via > getDerived(), so methods further down the chain should still be > called. The comment before the TRY_TO macro hints at this. There might > be a call somewhere that is missing the getDerived(). That's not it. RAV's dataTraverse function skips the calls to Traverse* in some cases, to avoid using up stack space during traversal. This is supposed to be skipped if the Traverse* function in question is overridden in the derived class (see DISPATCH_WALK in RAV's dataTraverseNode). _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
