[cfe-commits] r169571 - /cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp

Ted Kremenek kremenek at apple.com
Fri Dec 7 10:53:58 PST 2012


On Dec 7, 2012, at 10:45 AM, Jordan Rose <jordan_rose at apple.com> wrote:

> 
> On Dec 7, 2012, at 10:36 , Ted Kremenek <kremenek at apple.com> wrote:
> 
>> On Dec 7, 2012, at 10:23 AM, Ted Kremenek <kremenek at apple.com> wrote:
>> 
>>> On Dec 7, 2012, at 9:36 AM, Jordan Rose <jordan_rose at apple.com> 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.

I'm fine with changing it to a pointer value.  It will likely have no performance impact.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121207/03e3b086/attachment.html>


More information about the cfe-commits mailing list