virtual ~Type();
};
+// Provide out-of-line definition to prevent weak vtable.
Type::~Type() {}
}
+namespace {
class ExtendedIntegerType : public Type {
unsigned BitWidth;
public:
explicit ExtendedIntegerType(unsigned bits)
: Type(TK_ExtendedIntegerType), BitWidth(bits) {}
- virtual ~ExtendedIntegerType();
static bool classof(const Type *T) {
return T->getKind() == TK_ExtendedIntegerType;
}
}
};
-ExtendedIntegerType::~ExtendedIntegerType() {}
-
-
class ExtendedVectorType : public Type {
EVT ElementType;
unsigned NumElements;
public:
ExtendedVectorType(EVT elty, unsigned num)
: Type(TK_ExtendedVectorType), ElementType(elty), NumElements(num) {}
- virtual ~ExtendedVectorType();
static bool classof(const Type *T) {
return T->getKind() == TK_ExtendedVectorType;
}
return NumElements;
}
};
-
-ExtendedVectorType::~ExtendedVectorType() {}
-
+} // end anonymous namespace
static std::map<unsigned, const Type *>
ExtendedIntegerTypeMap;