On Dec 7, 2012, at 10:36 , Ted Kremenek <[email protected]> wrote: > On Dec 7, 2012, at 10:23 AM, Ted Kremenek <[email protected]> wrote: > >> On Dec 7, 2012, at 9:36 AM, Jordan Rose <[email protected]> wrote: >> >>>> + RegionBindingsRef &operator=(const RegionBindingsRef &X) { >>>> + *static_cast<ParentTy*>(this) = X; >>>> + return *this; >>>> + } >>> >>> This is the default copy-constructor; better to leave it out. >> >> Remove it, and you will see that the source doesn't compile. :-) > > Specifically: > > RegionStore.cpp:141:7: error: cannot define the implicit default assignment > operator for '<anonymous>::RegionBindingsRef', because non-static reference > member 'CBFactory' can't use default assignment operator > class RegionBindingsRef : public llvm::ImmutableMapRef<const MemRegion *,
I see the difference; we're not copying CBFactory. That kind of scares me, even though it's exceedingly unlikely that we'll ever attempt to assign one RegionBindingsRef to another with a different RegionStoreManager. We should probably make it a pointer instead of a reference. Jordan
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
