/// TODO: Detach from the Value hierarchy.
class Metadata : public Value {
protected:
- Metadata(Type *Type, unsigned ID) : Value(Type, ID) {}
+ Metadata(LLVMContext &Context, unsigned ID);
public:
static bool classof(const Value *V) {
using namespace llvm;
+Metadata::Metadata(LLVMContext &Context, unsigned ID)
+ : Value(Type::getMetadataTy(Context), ID) {}
+
//===----------------------------------------------------------------------===//
// MDString implementation.
//
}
MDNode::MDNode(LLVMContext &C, ArrayRef<Value *> Vals, bool isFunctionLocal)
- : Metadata(Type::getMetadataTy(C), Value::MDNodeVal) {
+ : Metadata(C, Value::MDNodeVal) {
NumOperands = Vals.size();
if (isFunctionLocal)