X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FIR%2FAttributeImpl.h;h=ea954ac20329b30bd81f49c7a563d8a747b94d67;hb=3e2346341cc7407bb895ddb13e43d512713e8a35;hp=2d2604449a2e85f8609a871ce05abcec9002e011;hpb=5a364c5561ec04e33a6f5d52c14f1bac6f247ea0;p=oota-llvm.git diff --git a/lib/IR/AttributeImpl.h b/lib/IR/AttributeImpl.h index 2d2604449a2..ea954ac2032 100644 --- a/lib/IR/AttributeImpl.h +++ b/lib/IR/AttributeImpl.h @@ -46,6 +46,8 @@ protected: AttributeImpl(AttrEntryKind KindID) : KindID(KindID) {} public: + virtual ~AttributeImpl(); + bool isEnumAttribute() const { return KindID == EnumAttrEntry; } bool isAlignAttribute() const { return KindID == AlignAttrEntry; } bool isStringAttribute() const { return KindID == StringAttrEntry; } @@ -92,6 +94,7 @@ public: /// attribute enties, which are for target-dependent attributes. class EnumAttributeImpl : public AttributeImpl { + virtual void anchor(); Attribute::AttrKind Kind; protected: @@ -106,6 +109,7 @@ public: }; class AlignAttributeImpl : public EnumAttributeImpl { + virtual void anchor(); unsigned Align; public: @@ -120,6 +124,7 @@ public: }; class StringAttributeImpl : public AttributeImpl { + virtual void anchor(); std::string Kind; std::string Val;