On Dec 7, 2012, at 9:36 AM, Jordan Rose <[email protected]> wrote:

>> //===----------------------------------------------------------------------===//
>> // Fine-grained control of RegionStoreManager.
>> @@ -164,19 +289,15 @@
>> namespace {
>> 
>> class RegionStoreManager : public StoreManager {
>> +public:
>>  const RegionStoreFeatures Features;
>>  RegionBindings::Factory RBFactory;
>> -  ClusterBindings::Factory CBFactory;
>> +  mutable ClusterBindings::Factory CBFactory;
> 
> Is there a reason this is mutable? When is the RSM ever const? (Left over 
> from an intermediate attempt?)
> 

Yes.

Remove it, and you get:

/Volumes/Data/Users/kremenek/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:478:12:
 error: no matching constructor for initialization of 
'<anonymous>::RegionBindingsRef'
    return RegionBindingsRef(CBFactory,
           ^                 ~~~~~~~~~~
/Volumes/Data/Users/kremenek/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:148:3:
 note: candidate constructor not viable: 1st argument ('const 
ClusterBindings::Factory') would lose const qualifier
  RegionBindingsRef(ClusterBindings::Factory &CBFactory,
  ^
/Volumes/Data/Users/kremenek/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:154:3:
 note: candidate constructor not viable: requires 2 arguments, but 3 were 
provided
  RegionBindingsRef(const ParentTy &P, ClusterBindings::Factory &CBFactory)
  ^
/Volumes/Data/Users/kremenek/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:141:7:
 note: candidate constructor (the implicit copy constructor) not viable: 
requires 1 argument, but 3 were provided
class RegionBindingsRef : public llvm::ImmutableMapRef<const MemRegion *,
      ^
1 error generated.
ninja: build stopped: subcommand failed.

The error is in getRegionBindings(), which is marked 'const'.  We could also 
use a const-cast, or remove the 'const' from getRegionBindings() and deal with 
the fallout.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to