X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FOperator.h;h=459df2b289a13b0808e0965ecc95e87eaa0e9431;hb=e57cb731532cfe91788823cd5b5b847311bd3920;hp=6bd7e56607584a484cc136cc90d497b8466da94e;hpb=8883c43ddc13e5f92ba8dfe00f2116a153a570d5;p=oota-llvm.git diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h index 6bd7e566075..459df2b289a 100644 --- a/include/llvm/Operator.h +++ b/include/llvm/Operator.h @@ -32,9 +32,11 @@ class Operator : public User { private: // Do not implement any of these. The Operator class is intended to be used // as a utility, and is never itself instantiated. - void *operator new(size_t, unsigned); - void *operator new(size_t s); - Operator(); + void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; + void *operator new(size_t s) LLVM_DELETED_FUNCTION; + Operator() LLVM_DELETED_FUNCTION; + // NOTE: cannot use LLVM_DELETED_FUNCTION because gcc errors when deleting + // an override of a non-deleted function. ~Operator(); public: @@ -77,7 +79,7 @@ public: }; private: - ~OverflowingBinaryOperator(); // do not implement + ~OverflowingBinaryOperator(); // DO NOT IMPLEMENT friend class BinaryOperator; friend class ConstantExpr; @@ -131,7 +133,7 @@ public: }; private: - ~PossiblyExactOperator(); // do not implement + ~PossiblyExactOperator(); // DO NOT IMPLEMENT friend class BinaryOperator; friend class ConstantExpr; @@ -168,19 +170,15 @@ public: /// information about relaxed accuracy requirements attached to them. class FPMathOperator : public Operator { private: - ~FPMathOperator(); // do not implement + ~FPMathOperator(); // DO NOT IMPLEMENT public: /// \brief Get the maximum error permitted by this operation in ULPs. An /// accuracy of 0.0 means that the operation should be performed with the - /// default precision. A huge value is returned if the accuracy is 'fast'. + /// default precision. float getFPAccuracy() const; - /// \brief Return true if the accuracy is 'fast'. This indicates that speed - /// is more important than accuracy. - bool isFastFPAccuracy() const; - static inline bool classof(const FPMathOperator *) { return true; } static inline bool classof(const Instruction *I) { return I->getType()->isFPOrFPVectorTy(); @@ -195,7 +193,7 @@ public: /// opcodes. template class ConcreteOperator : public SuperClass { - ~ConcreteOperator(); // DO NOT IMPLEMENT + ~ConcreteOperator() LLVM_DELETED_FUNCTION; public: static inline bool classof(const ConcreteOperator *) { return true; @@ -214,44 +212,44 @@ public: class AddOperator : public ConcreteOperator { - ~AddOperator(); // DO NOT IMPLEMENT + ~AddOperator() LLVM_DELETED_FUNCTION; }; class SubOperator : public ConcreteOperator { - ~SubOperator(); // DO NOT IMPLEMENT + ~SubOperator() LLVM_DELETED_FUNCTION; }; class MulOperator : public ConcreteOperator { - ~MulOperator(); // DO NOT IMPLEMENT + ~MulOperator() LLVM_DELETED_FUNCTION; }; class ShlOperator : public ConcreteOperator { - ~ShlOperator(); // DO NOT IMPLEMENT + ~ShlOperator() LLVM_DELETED_FUNCTION; }; class SDivOperator : public ConcreteOperator { - ~SDivOperator(); // DO NOT IMPLEMENT + ~SDivOperator() LLVM_DELETED_FUNCTION; }; class UDivOperator : public ConcreteOperator { - ~UDivOperator(); // DO NOT IMPLEMENT + ~UDivOperator() LLVM_DELETED_FUNCTION; }; class AShrOperator : public ConcreteOperator { - ~AShrOperator(); // DO NOT IMPLEMENT + ~AShrOperator() LLVM_DELETED_FUNCTION; }; class LShrOperator : public ConcreteOperator { - ~LShrOperator(); // DO NOT IMPLEMENT + ~LShrOperator() LLVM_DELETED_FUNCTION; }; class GEPOperator : public ConcreteOperator { - ~GEPOperator(); // DO NOT IMPLEMENT + ~GEPOperator() LLVM_DELETED_FUNCTION; enum { IsInBounds = (1 << 0)