template<class Config>
class TypeImpl<Config>::BitsetType : public TypeImpl<Config> {
- protected:
+ public: // protected:
friend class TypeImpl<Config>;
enum {
bitset Bitset() { return Config::as_bitset(this); }
- static TypeImpl* New(bitset bits) {
- return static_cast<BitsetType*>(Config::from_bitset(bits));
- }
+ static TypeImpl* New(bitset bits) { return Config::from_bitset(bits); }
static TypeHandle New(bitset bits, Region* region) {
return Config::from_bitset(bits, region);
}
CHECK(this->IsBitset(T.Any));
CHECK(bitset(0) == this->AsBitset(T.None));
- printf("[BitSet] %p (%p) == %p (%p)\n",
+ printf("[BitSet] value=%p enum=%p bitset=%p any=%p this=%p any=%p\n",
reinterpret_cast<void*>(bitset(0xfffffffeu)),
+ reinterpret_cast<void*>(bitset(HeapType::BitsetType::kAny)),
+ reinterpret_cast<void*>(
+ HeapTypeConfig::from_bitset(HeapType::BitsetType::kAny)),
reinterpret_cast<void*>(HeapType::Any()),
reinterpret_cast<void*>(this->AsBitset(T.Any)),
reinterpret_cast<void*>(*T.Any));