forked from OSchip/llvm-project
As Chris pointed out, this doesn't actually need an LLVMContext to operate.
llvm-svn: 75508
This commit is contained in:
parent
b4c9579e69
commit
e4dcecd006
|
@ -375,7 +375,7 @@ public:
|
|||
/// isString) and it ends in a null byte \0 and does not contains any other
|
||||
/// @endverbatim
|
||||
/// null bytes except its terminator.
|
||||
bool isCString(LLVMContext &Context) const;
|
||||
bool isCString() const;
|
||||
|
||||
/// getAsString - If this array is isString(), then this method converts the
|
||||
/// array to an std::string and returns it. Otherwise, it asserts out.
|
||||
|
|
|
@ -123,7 +123,7 @@ bool MachOWriter::doFinalization(Module &M) {
|
|||
// getConstSection - Get constant section for Constant 'C'
|
||||
MachOSection *MachOWriter::getConstSection(Constant *C) {
|
||||
const ConstantArray *CVA = dyn_cast<ConstantArray>(C);
|
||||
if (CVA && CVA->isCString(*Context))
|
||||
if (CVA && CVA->isCString())
|
||||
return getSection("__TEXT", "__cstring",
|
||||
MachOSection::S_CSTRING_LITERALS);
|
||||
|
||||
|
|
|
@ -541,7 +541,7 @@ printModuleLevelGV(const GlobalVariable* GVar) {
|
|||
// Fall Through
|
||||
case GlobalValue::PrivateLinkage:
|
||||
case GlobalValue::InternalLinkage:
|
||||
if (CVA && CVA->isCString(GVar->getParent()->getContext()))
|
||||
if (CVA && CVA->isCString())
|
||||
printSizeAndType = false;
|
||||
break;
|
||||
case GlobalValue::GhostLinkage:
|
||||
|
|
|
@ -227,7 +227,7 @@ bool MipsTargetLowering::IsGlobalInSmallSection(GlobalValue *GV)
|
|||
if (GVA->hasInitializer() && GV->hasLocalLinkage()) {
|
||||
Constant *C = GVA->getInitializer();
|
||||
const ConstantArray *CVA = dyn_cast<ConstantArray>(C);
|
||||
if (CVA && CVA->isCString(GV->getParent()->getContext()))
|
||||
if (CVA && CVA->isCString())
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -171,11 +171,11 @@ static bool isSuitableForBSS(const GlobalVariable *GV) {
|
|||
return (C->isNullValue() && !GV->isConstant() && !NoZerosInBSS);
|
||||
}
|
||||
|
||||
static bool isConstantString(LLVMContext &Context, const Constant *C) {
|
||||
static bool isConstantString(const Constant *C) {
|
||||
// First check: is we have constant array of i8 terminated with zero
|
||||
const ConstantArray *CVA = dyn_cast<ConstantArray>(C);
|
||||
// Check, if initializer is a null-terminated string
|
||||
if (CVA && CVA->isCString(Context))
|
||||
if (CVA && CVA->isCString())
|
||||
return true;
|
||||
|
||||
// Another possibility: [1 x i8] zeroinitializer
|
||||
|
@ -230,7 +230,7 @@ TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const {
|
|||
}
|
||||
} else {
|
||||
// Check, if initializer is a null-terminated string
|
||||
if (isConstantString(GV->getParent()->getContext(), C))
|
||||
if (isConstantString(C))
|
||||
return SectionKind::RODataMergeStr;
|
||||
else
|
||||
return SectionKind::RODataMergeConst;
|
||||
|
|
|
@ -1416,19 +1416,19 @@ bool ConstantArray::isString() const {
|
|||
/// isCString - This method returns true if the array is a string (see
|
||||
/// isString) and it ends in a null byte \\0 and does not contains any other
|
||||
/// null bytes except its terminator.
|
||||
bool ConstantArray::isCString(LLVMContext &Context) const {
|
||||
bool ConstantArray::isCString() const {
|
||||
// Check the element type for i8...
|
||||
if (getType()->getElementType() != Type::Int8Ty)
|
||||
return false;
|
||||
Constant *Zero = Context.getNullValue(getOperand(0)->getType());
|
||||
|
||||
// Last element must be a null.
|
||||
if (getOperand(getNumOperands()-1) != Zero)
|
||||
if (!getOperand(getNumOperands()-1)->isNullValue())
|
||||
return false;
|
||||
// Other elements must be non-null integers.
|
||||
for (unsigned i = 0, e = getNumOperands()-1; i != e; ++i) {
|
||||
if (!isa<ConstantInt>(getOperand(i)))
|
||||
return false;
|
||||
if (getOperand(i) == Zero)
|
||||
if (getOperand(i)->isNullValue())
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -189,7 +189,7 @@ bool LTOModule::objcClassNameFromExpression(Constant* c, std::string& name)
|
|||
if (GlobalVariable* gvn = dyn_cast<GlobalVariable>(op)) {
|
||||
Constant* cn = gvn->getInitializer();
|
||||
if (ConstantArray* ca = dyn_cast<ConstantArray>(cn)) {
|
||||
if ( ca->isCString(getGlobalContext()) ) {
|
||||
if ( ca->isCString() ) {
|
||||
name = ".objc_class_name_" + ca->getAsString();
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue