On Feb 13, 2009, at 9:01 AM, Ben Laurie wrote: >> Looks great. I'm a little concerned about the assumptions clients >> can make >> on the returned "llvm::APSInt*" object. It's lifetime is bound to >> the >> lifetime of the Range object (which is bound to the ImmutableSet). >> In many >> cases through the analyzer with use the "BasicValueManager" to >> unique APSInt >> objects so that they can be compared using direct pointer >> comparison. It >> also takes care of some weird memory management issues. >> >> By default, the destructors of the objects allocated by an >> ImmutableSet::Factory are not called. APSInt actually can 'malloc()' >> memory, meaning that if their destructors aren't called then this >> memory >> will just get leaked. Using BasicValueManager solves this problem >> since it >> manually calls the destructors of the uniqued APSInt objects. > > AFAICS, BasicConstraintManager::getSymVal, which does the same thing, > does not use BasicValueManager...
Then that's probably a bug. I'll take a look. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
