// Helper to copy construct a SmallPtrSet.
SmallPtrSetImpl(const SmallPtrSetImpl& that);
public:
- SmallPtrSetImpl(unsigned SmallSize) {
+ explicit SmallPtrSetImpl(unsigned SmallSize) {
assert(SmallSize && (SmallSize & (SmallSize-1)) == 0 &&
"Initial size must be a power of two!");
CurArray = &SmallArray[0];
protected:
const void *const *Bucket;
public:
- SmallPtrSetIteratorImpl(const void *const *BP) : Bucket(BP) {
+ explicit SmallPtrSetIteratorImpl(const void *const *BP) : Bucket(BP) {
AdvanceIfNotValid();
}
template<typename PtrTy>
class SmallPtrSetIterator : public SmallPtrSetIteratorImpl {
public:
- SmallPtrSetIterator(const void *const *BP) : SmallPtrSetIteratorImpl(BP) {}
+ explicit SmallPtrSetIterator(const void *const *BP)
+ : SmallPtrSetIteratorImpl(BP) {}
// Most methods provided by baseclass.
protected:
std::vector<NodeT*> Roots;
const bool IsPostDominators;
- inline DominatorBase(bool isPostDom) :
+ inline explicit DominatorBase(bool isPostDom) :
Roots(), IsPostDominators(isPostDom) {}
public:
}
public:
- DominatorTreeBase(bool isPostDom)
+ explicit DominatorTreeBase(bool isPostDom)
: DominatorBase<NodeT>(isPostDom), DFSInfoValid(false), SlowQueries(0) {}
virtual ~DominatorTreeBase() { reset(); }
/// if we just have a Module. Note that the ModuleProvider takes ownership of
/// the Module specified.
struct ExistingModuleProvider : public ModuleProvider {
- ExistingModuleProvider(Module *M) {
+ explicit ExistingModuleProvider(Module *M) {
TheModule = M;
}
bool materializeFunction(Function *F, std::string *ErrInfo = 0) {
typedef value_use_iterator<UserTy> _Self;
Use *U;
- value_use_iterator(Use *u) : U(u) {}
+ explicit value_use_iterator(Use *u) : U(u) {}
friend class Value;
public:
typedef typename super::reference reference;
std::string TheError;
public:
- LLLexer(MemoryBuffer *StartBuf);
+ explicit LLLexer(MemoryBuffer *StartBuf);
~LLLexer() {}
const char *getTokStart() const { return TokStart; }
/// stream) and what linkage the original function had.
DenseMap<Function*, std::pair<uint64_t, unsigned> > DeferredFunctionInfo;
public:
- BitcodeReader(MemoryBuffer *buffer) : Buffer(buffer), ErrorString(0) {
+ explicit BitcodeReader(MemoryBuffer *buffer)
+ : Buffer(buffer), ErrorString(0) {
HasReversedFunctionsWithBodies = false;
}
~BitcodeReader() {
std::vector<const GlobalVariable*> PendingGlobals;
public:
- JITState(ModuleProvider *MP) : PM(MP) {}
+ explicit JITState(ModuleProvider *MP) : PM(MP) {}
FunctionPassManager &getPM(const MutexGuard &L) {
return PM;
static JITResolver *TheJITResolver;
public:
- JITResolver(JIT &jit) : nextGOTIndex(0) {
+ explicit JITResolver(JIT &jit) : nextGOTIndex(0) {
TheJIT = &jit;
LazyResolverFn = jit.getJITInfo().getLazyResolverFunction(JITCompilerFn);
}
public:
- HelpPrinter(bool showHidden) : ShowHidden(showHidden) {
+ explicit HelpPrinter(bool showHidden) : ShowHidden(showHidden) {
EmptyArg = 0;
}
class ARMInstrInfo : public TargetInstrInfoImpl {
const ARMRegisterInfo RI;
public:
- ARMInstrInfo(const ARMSubtarget &STI);
+ explicit ARMInstrInfo(const ARMSubtarget &STI);
/// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
/// such, whenever a client has an instance of instruction info, it should
class ARMJITInfo : public TargetJITInfo {
ARMTargetMachine &TM;
public:
- ARMJITInfo(ARMTargetMachine &tm) : TM(tm) {useGOT = 0;}
+ explicit ARMJITInfo(ARMTargetMachine &tm) : TM(tm) {useGOT = 0;}
/// replaceMachineCodeForFunction - Make it so that calling the function
/// whose machine code is at OLD turns into a call to NEW, perhaps by
protected:
TargetMachine &TM;
public:
- AlphaJITInfo(TargetMachine &tm) : TM(tm)
+ explicit AlphaJITInfo(TargetMachine &tm) : TM(tm)
{ useGOT = true; }
virtual void *emitFunctionStub(void *Fn, MachineCodeEmitter &MCE);
public:
static char ID;
- CWriter(std::ostream &o)
+ explicit CWriter(std::ostream &o)
: FunctionPass((intptr_t)&ID), Out(o), IL(0), Mang(0), LI(0),
TheModule(0), TAsm(0), TD(0) {}
SPUTargetMachine &TM;
const SPURegisterInfo RI;
public:
- SPUInstrInfo(SPUTargetMachine &tm);
+ explicit SPUInstrInfo(SPUTargetMachine &tm);
/// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
/// such, whenever a client has an instance of instruction info, it should
MipsTargetMachine &TM;
const MipsRegisterInfo RI;
public:
- MipsInstrInfo(MipsTargetMachine &TM);
+ explicit MipsInstrInfo(MipsTargetMachine &TM);
/// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
/// such, whenever a client has an instance of instruction info, it should
const TargetRegisterClass *RC,
SmallVectorImpl<MachineInstr*> &NewMIs) const;
public:
- PPCInstrInfo(PPCTargetMachine &TM);
+ explicit PPCInstrInfo(PPCTargetMachine &TM);
/// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
/// such, whenever a client has an instance of instruction info, it should
const SparcRegisterInfo RI;
const SparcSubtarget& Subtarget;
public:
- SparcInstrInfo(SparcSubtarget &ST);
+ explicit SparcInstrInfo(SparcSubtarget &ST);
/// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
/// such, whenever a client has an instance of instruction info, it should
DenseMap<unsigned*, std::pair<unsigned, unsigned> > MemOp2RegOpTable;
public:
- X86InstrInfo(X86TargetMachine &tm);
+ explicit X86InstrInfo(X86TargetMachine &tm);
/// getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As
/// such, whenever a client has an instance of instruction info, it should
X86TargetMachine &TM;
intptr_t PICBase;
public:
- X86JITInfo(X86TargetMachine &tm) : TM(tm) {useGOT = 0;}
+ explicit X86JITInfo(X86TargetMachine &tm) : TM(tm) {useGOT = 0;}
/// replaceMachineCodeForFunction - Make it so that calling the function
/// whose machine code is at OLD turns into a call to NEW, perhaps by
: FunctionPass((intptr_t)&ID),
Broken(false), RealPass(true), action(AbortProcessAction),
DT(0), msgs( std::ios::app | std::ios::out ) {}
- Verifier( VerifierFailureAction ctn )
+ explicit Verifier(VerifierFailureAction ctn)
: FunctionPass((intptr_t)&ID),
Broken(false), RealPass(true), action(ctn), DT(0),
msgs( std::ios::app | std::ios::out ) {}
- Verifier(bool AB )
+ explicit Verifier(bool AB)
: FunctionPass((intptr_t)&ID),
Broken(false), RealPass(true),
action( AB ? AbortProcessAction : PrintMessageAction), DT(0),
msgs( std::ios::app | std::ios::out ) {}
- Verifier(DominatorTree &dt)
+ explicit Verifier(DominatorTree &dt)
: FunctionPass((intptr_t)&ID),
Broken(false), RealPass(false), action(PrintMessageAction),
DT(&dt), msgs( std::ios::app | std::ios::out ) {}
OS << " std::vector<SDNode*> &ISelQueue;\n";
OS << " bool HadDelete;\n";
OS << " public:\n";
- OS << " ISelQueueUpdater(std::vector<SDNode*> &isq)\n";
+ OS << " explicit ISelQueueUpdater(std::vector<SDNode*> &isq)\n";
OS << " : ISelQueue(isq), HadDelete(false) {}\n";
OS << " \n";
OS << " bool hadDelete() const { return HadDelete; }\n";
class BitInit : public Init {
bool Value;
public:
- BitInit(bool V) : Value(V) {}
+ explicit BitInit(bool V) : Value(V) {}
bool getValue() const { return Value; }
class BitsInit : public Init {
std::vector<Init*> Bits;
public:
- BitsInit(unsigned Size) : Bits(Size) {}
+ explicit BitsInit(unsigned Size) : Bits(Size) {}
unsigned getNumBits() const { return Bits.size(); }
class IntInit : public Init {
int Value;
public:
- IntInit(int V) : Value(V) {}
+ explicit IntInit(int V) : Value(V) {}
int getValue() const { return Value; }
class StringInit : public Init {
std::string Value;
public:
- StringInit(const std::string &V) : Value(V) {}
+ explicit StringInit(const std::string &V) : Value(V) {}
const std::string &getValue() const { return Value; }
class CodeInit : public Init {
std::string Value;
public:
- CodeInit(const std::string &V) : Value(V) {}
+ explicit CodeInit(const std::string &V) : Value(V) {}
const std::string getValue() const { return Value; }
class ListInit : public Init {
std::vector<Init*> Values;
public:
- ListInit(std::vector<Init*> &Vs) {
+ explicit ListInit(std::vector<Init*> &Vs) {
Values.swap(Vs);
}
class TypedInit : public Init {
RecTy *Ty;
public:
- TypedInit(RecTy *T) : Ty(T) {}
+ explicit TypedInit(RecTy *T) : Ty(T) {}
RecTy *getType() const { return Ty; }
class VarInit : public TypedInit {
std::string VarName;
public:
- VarInit(const std::string &VN, RecTy *T) : TypedInit(T), VarName(VN) {}
+ explicit VarInit(const std::string &VN, RecTy *T)
+ : TypedInit(T), VarName(VN) {}
virtual Init *convertInitializerTo(RecTy *Ty) {
return Ty->convertValue(this);
class DefInit : public Init {
Record *Def;
public:
- DefInit(Record *D) : Def(D) {}
+ explicit DefInit(Record *D) : Def(D) {}
virtual Init *convertInitializerTo(RecTy *Ty) {
return Ty->convertValue(this);
OS << "namespace llvm {\n\n";
OS << "struct " << ClassName << " : public TargetRegisterInfo {\n"
- << " " << ClassName
+ << " explicit " << ClassName
<< "(int CallFrameSetupOpcode = -1, int CallFrameDestroyOpcode = -1);\n"
<< " virtual int getDwarfRegNumFull(unsigned RegNum, "
<< "unsigned Flavour) const;\n"