Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164016 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Craig Topper 2012-09-17 06:59:23 +00:00
parent de8091708f
commit 001d3dc976
17 changed files with 44 additions and 42 deletions

View File

@ -48,9 +48,10 @@ namespace llvm {
// May only be subclassed. // May only be subclassed.
GCMetadataPrinter(); GCMetadataPrinter();
// Do not implement. private:
GCMetadataPrinter(const GCMetadataPrinter &); GCMetadataPrinter(const GCMetadataPrinter &) LLVM_DELETED_FUNCTION;
GCMetadataPrinter &operator=(const GCMetadataPrinter &); GCMetadataPrinter &
operator=(const GCMetadataPrinter &) LLVM_DELETED_FUNCTION;
public: public:
GCStrategy &getStrategy() { return *S; } GCStrategy &getStrategy() { return *S; }

View File

@ -114,9 +114,6 @@ namespace llvm {
void dump() const; void dump() const;
void print(raw_ostream &os) const; void print(raw_ostream &os) const;
private:
LiveRange(); // DO NOT IMPLEMENT
}; };
template <> struct isPodLike<LiveRange> { static const bool value = true; }; template <> struct isPodLike<LiveRange> { static const bool value = true; };
@ -467,7 +464,7 @@ namespace llvm {
VNInfo *LHSValNo = 0, VNInfo *LHSValNo = 0,
const VNInfo *RHSValNo = 0); const VNInfo *RHSValNo = 0);
LiveInterval& operator=(const LiveInterval& rhs); // DO NOT IMPLEMENT LiveInterval& operator=(const LiveInterval& rhs) LLVM_DELETED_FUNCTION;
}; };

View File

@ -127,8 +127,8 @@ class MachineFunction {
/// about the control flow of such functions. /// about the control flow of such functions.
bool ExposesReturnsTwice; bool ExposesReturnsTwice;
MachineFunction(const MachineFunction &); // DO NOT IMPLEMENT MachineFunction(const MachineFunction &) LLVM_DELETED_FUNCTION;
void operator=(const MachineFunction&); // DO NOT IMPLEMENT void operator=(const MachineFunction&) LLVM_DELETED_FUNCTION;
public: public:
MachineFunction(const Function *Fn, const TargetMachine &TM, MachineFunction(const Function *Fn, const TargetMachine &TM,
unsigned FunctionNum, MachineModuleInfo &MMI, unsigned FunctionNum, MachineModuleInfo &MMI,

View File

@ -82,8 +82,8 @@ private:
MachineBasicBlock *Parent; // Pointer to the owning basic block. MachineBasicBlock *Parent; // Pointer to the owning basic block.
DebugLoc debugLoc; // Source line information. DebugLoc debugLoc; // Source line information.
MachineInstr(const MachineInstr&); // DO NOT IMPLEMENT MachineInstr(const MachineInstr&) LLVM_DELETED_FUNCTION;
void operator=(const MachineInstr&); // DO NOT IMPLEMENT void operator=(const MachineInstr&) LLVM_DELETED_FUNCTION;
// Intrusive list support // Intrusive list support
friend struct ilist_traits<MachineInstr>; friend struct ilist_traits<MachineInstr>;

View File

@ -73,8 +73,8 @@ class MachineLoopInfo : public MachineFunctionPass {
LoopInfoBase<MachineBasicBlock, MachineLoop> LI; LoopInfoBase<MachineBasicBlock, MachineLoop> LI;
friend class LoopBase<MachineBasicBlock, MachineLoop>; friend class LoopBase<MachineBasicBlock, MachineLoop>;
void operator=(const MachineLoopInfo &); // do not implement void operator=(const MachineLoopInfo &) LLVM_DELETED_FUNCTION;
MachineLoopInfo(const MachineLoopInfo &); // do not implement MachineLoopInfo(const MachineLoopInfo &) LLVM_DELETED_FUNCTION;
public: public:
static char ID; // Pass identification, replacement for typeid static char ID; // Pass identification, replacement for typeid

View File

@ -106,8 +106,8 @@ class MachineRegisterInfo {
std::vector<std::pair<unsigned, unsigned> > LiveIns; std::vector<std::pair<unsigned, unsigned> > LiveIns;
std::vector<unsigned> LiveOuts; std::vector<unsigned> LiveOuts;
MachineRegisterInfo(const MachineRegisterInfo&); // DO NOT IMPLEMENT MachineRegisterInfo(const MachineRegisterInfo&) LLVM_DELETED_FUNCTION;
void operator=(const MachineRegisterInfo&); // DO NOT IMPLEMENT void operator=(const MachineRegisterInfo&) LLVM_DELETED_FUNCTION;
public: public:
explicit MachineRegisterInfo(const TargetRegisterInfo &TRI); explicit MachineRegisterInfo(const TargetRegisterInfo &TRI);
~MachineRegisterInfo(); ~MachineRegisterInfo();

View File

@ -14,6 +14,8 @@
#ifndef LLVM_CODEGEN_MACHINESSAUPDATER_H #ifndef LLVM_CODEGEN_MACHINESSAUPDATER_H
#define LLVM_CODEGEN_MACHINESSAUPDATER_H #define LLVM_CODEGEN_MACHINESSAUPDATER_H
#include "llvm/Support/Compiler.h"
namespace llvm { namespace llvm {
class MachineBasicBlock; class MachineBasicBlock;
class MachineFunction; class MachineFunction;
@ -106,8 +108,8 @@ private:
void ReplaceRegWith(unsigned OldReg, unsigned NewReg); void ReplaceRegWith(unsigned OldReg, unsigned NewReg);
unsigned GetValueAtEndOfBlockInternal(MachineBasicBlock *BB); unsigned GetValueAtEndOfBlockInternal(MachineBasicBlock *BB);
void operator=(const MachineSSAUpdater&); // DO NOT IMPLEMENT void operator=(const MachineSSAUpdater&) LLVM_DELETED_FUNCTION;
MachineSSAUpdater(const MachineSSAUpdater&); // DO NOT IMPLEMENT MachineSSAUpdater(const MachineSSAUpdater&) LLVM_DELETED_FUNCTION;
}; };
} // End llvm namespace } // End llvm namespace

View File

@ -109,8 +109,8 @@ namespace llvm {
/// class to support additional constraints for your architecture. /// class to support additional constraints for your architecture.
class PBQPBuilder { class PBQPBuilder {
private: private:
PBQPBuilder(const PBQPBuilder&) {} PBQPBuilder(const PBQPBuilder&) LLVM_DELETED_FUNCTION;
void operator=(const PBQPBuilder&) {} void operator=(const PBQPBuilder&) LLVM_DELETED_FUNCTION;
public: public:
typedef std::set<unsigned> RegSet; typedef std::set<unsigned> RegSet;

View File

@ -73,8 +73,8 @@ class SDDbgInfo {
SmallVector<SDDbgValue*, 32> ByvalParmDbgValues; SmallVector<SDDbgValue*, 32> ByvalParmDbgValues;
DenseMap<const SDNode*, SmallVector<SDDbgValue*, 2> > DbgValMap; DenseMap<const SDNode*, SmallVector<SDDbgValue*, 2> > DbgValMap;
void operator=(const SDDbgInfo&); // Do not implement. void operator=(const SDDbgInfo&) LLVM_DELETED_FUNCTION;
SDDbgInfo(const SDDbgInfo&); // Do not implement. SDDbgInfo(const SDDbgInfo&) LLVM_DELETED_FUNCTION;
public: public:
SDDbgInfo() {} SDDbgInfo() {}
@ -222,8 +222,8 @@ private:
DenseSet<SDNode *> &visited, DenseSet<SDNode *> &visited,
int level, bool &printed); int level, bool &printed);
void operator=(const SelectionDAG&); // Do not implement. void operator=(const SelectionDAG&) LLVM_DELETED_FUNCTION;
SelectionDAG(const SelectionDAG&); // Do not implement. SelectionDAG(const SelectionDAG&) LLVM_DELETED_FUNCTION;
public: public:
explicit SelectionDAG(const TargetMachine &TM, llvm::CodeGenOpt::Level); explicit SelectionDAG(const TargetMachine &TM, llvm::CodeGenOpt::Level);

View File

@ -216,8 +216,8 @@ class SDUse {
/// this operand. /// this operand.
SDUse **Prev, *Next; SDUse **Prev, *Next;
SDUse(const SDUse &U); // Do not implement SDUse(const SDUse &U) LLVM_DELETED_FUNCTION;
void operator=(const SDUse &U); // Do not implement void operator=(const SDUse &U) LLVM_DELETED_FUNCTION;
public: public:
SDUse() : Val(), User(NULL), Prev(NULL), Next(NULL) {} SDUse() : Val(), User(NULL), Prev(NULL), Next(NULL) {}
@ -1390,7 +1390,7 @@ public:
/// BUILD_VECTORs. /// BUILD_VECTORs.
class BuildVectorSDNode : public SDNode { class BuildVectorSDNode : public SDNode {
// These are constructed as SDNodes and then cast to BuildVectorSDNodes. // These are constructed as SDNodes and then cast to BuildVectorSDNodes.
explicit BuildVectorSDNode(); // Do not implement explicit BuildVectorSDNode() LLVM_DELETED_FUNCTION;
public: public:
/// isConstantSplat - Check if this is a constant splat, and if so, find the /// isConstantSplat - Check if this is a constant splat, and if so, find the
/// smallest element size that splats the vector. If MinSplatBits is /// smallest element size that splats the vector. If MinSplatBits is

View File

@ -45,8 +45,8 @@ template<class T> class SmallVectorImpl;
/// TargetInstrInfo - Interface to description of machine instruction set /// TargetInstrInfo - Interface to description of machine instruction set
/// ///
class TargetInstrInfo : public MCInstrInfo { class TargetInstrInfo : public MCInstrInfo {
TargetInstrInfo(const TargetInstrInfo &); // DO NOT IMPLEMENT TargetInstrInfo(const TargetInstrInfo &) LLVM_DELETED_FUNCTION;
void operator=(const TargetInstrInfo &); // DO NOT IMPLEMENT void operator=(const TargetInstrInfo &) LLVM_DELETED_FUNCTION;
public: public:
TargetInstrInfo(int CFSetupOpcode = -1, int CFDestroyOpcode = -1) TargetInstrInfo(int CFSetupOpcode = -1, int CFDestroyOpcode = -1)
: CallFrameSetupOpcode(CFSetupOpcode), : CallFrameSetupOpcode(CFSetupOpcode),

View File

@ -14,6 +14,7 @@
#ifndef LLVM_TARGET_TARGETINTRINSICINFO_H #ifndef LLVM_TARGET_TARGETINTRINSICINFO_H
#define LLVM_TARGET_TARGETINTRINSICINFO_H #define LLVM_TARGET_TARGETINTRINSICINFO_H
#include "llvm/Support/Compiler.h"
#include <string> #include <string>
namespace llvm { namespace llvm {
@ -27,8 +28,8 @@ class Type;
/// TargetIntrinsicInfo - Interface to description of machine instruction set /// TargetIntrinsicInfo - Interface to description of machine instruction set
/// ///
class TargetIntrinsicInfo { class TargetIntrinsicInfo {
TargetIntrinsicInfo(const TargetIntrinsicInfo &); // DO NOT IMPLEMENT TargetIntrinsicInfo(const TargetIntrinsicInfo &) LLVM_DELETED_FUNCTION;
void operator=(const TargetIntrinsicInfo &); // DO NOT IMPLEMENT void operator=(const TargetIntrinsicInfo &) LLVM_DELETED_FUNCTION;
public: public:
TargetIntrinsicInfo(); TargetIntrinsicInfo();
virtual ~TargetIntrinsicInfo(); virtual ~TargetIntrinsicInfo();

View File

@ -77,8 +77,8 @@ namespace llvm {
/// target-specific constructs to SelectionDAG operators. /// target-specific constructs to SelectionDAG operators.
/// ///
class TargetLowering { class TargetLowering {
TargetLowering(const TargetLowering&); // DO NOT IMPLEMENT TargetLowering(const TargetLowering&) LLVM_DELETED_FUNCTION;
void operator=(const TargetLowering&); // DO NOT IMPLEMENT void operator=(const TargetLowering&) LLVM_DELETED_FUNCTION;
public: public:
/// LegalizeAction - This enum indicates whether operations are valid for a /// LegalizeAction - This enum indicates whether operations are valid for a
/// target, and if not, what action should be used to make them valid. /// target, and if not, what action should be used to make them valid.

View File

@ -34,8 +34,9 @@ namespace llvm {
class TargetLoweringObjectFile : public MCObjectFileInfo { class TargetLoweringObjectFile : public MCObjectFileInfo {
MCContext *Ctx; MCContext *Ctx;
TargetLoweringObjectFile(const TargetLoweringObjectFile&); // DO NOT IMPLEMENT TargetLoweringObjectFile(
void operator=(const TargetLoweringObjectFile&); // DO NOT IMPLEMENT const TargetLoweringObjectFile&) LLVM_DELETED_FUNCTION;
void operator=(const TargetLoweringObjectFile&) LLVM_DELETED_FUNCTION;
public: public:
MCContext &getContext() const { return *Ctx; } MCContext &getContext() const { return *Ctx; }

View File

@ -52,8 +52,8 @@ class raw_ostream;
/// through this interface. /// through this interface.
/// ///
class TargetMachine { class TargetMachine {
TargetMachine(const TargetMachine &); // DO NOT IMPLEMENT TargetMachine(const TargetMachine &) LLVM_DELETED_FUNCTION;
void operator=(const TargetMachine &); // DO NOT IMPLEMENT void operator=(const TargetMachine &) LLVM_DELETED_FUNCTION;
protected: // Can only create subclasses. protected: // Can only create subclasses.
TargetMachine(const Target &T, StringRef TargetTriple, TargetMachine(const Target &T, StringRef TargetTriple,
StringRef CPU, StringRef FS, const TargetOptions &Options); StringRef CPU, StringRef FS, const TargetOptions &Options);

View File

@ -28,8 +28,8 @@ class TargetMachine;
/// SelectionDAG lowering and instruction selection process. /// SelectionDAG lowering and instruction selection process.
/// ///
class TargetSelectionDAGInfo { class TargetSelectionDAGInfo {
TargetSelectionDAGInfo(const TargetSelectionDAGInfo &); // DO NOT IMPLEMENT TargetSelectionDAGInfo(const TargetSelectionDAGInfo &) LLVM_DELETED_FUNCTION;
void operator=(const TargetSelectionDAGInfo &); // DO NOT IMPLEMENT void operator=(const TargetSelectionDAGInfo &) LLVM_DELETED_FUNCTION;
const TargetData *TD; const TargetData *TD;

View File

@ -31,8 +31,8 @@ template <typename T> class SmallVectorImpl;
/// be exposed through a TargetSubtargetInfo-derived class. /// be exposed through a TargetSubtargetInfo-derived class.
/// ///
class TargetSubtargetInfo : public MCSubtargetInfo { class TargetSubtargetInfo : public MCSubtargetInfo {
TargetSubtargetInfo(const TargetSubtargetInfo&); // DO NOT IMPLEMENT TargetSubtargetInfo(const TargetSubtargetInfo&) LLVM_DELETED_FUNCTION;
void operator=(const TargetSubtargetInfo&); // DO NOT IMPLEMENT void operator=(const TargetSubtargetInfo&) LLVM_DELETED_FUNCTION;
protected: // Can only create subclasses... protected: // Can only create subclasses...
TargetSubtargetInfo(); TargetSubtargetInfo();
public: public: