Fix some Twine locals.

Two of those are use after frees. Found by clang-tidy, fixed by me.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212537 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2014-07-08 14:55:06 +00:00
parent 986392e6e7
commit e63aae5b75
3 changed files with 18 additions and 17 deletions

View File

@ -199,19 +199,17 @@ bool GlobalMerge::doMerge(SmallVectorImpl<GlobalVariable*> &Globals,
? GlobalValue::ExternalLinkage ? GlobalValue::ExternalLinkage
: GlobalValue::InternalLinkage; : GlobalValue::InternalLinkage;
// If merged variables have external linkage, we use symbol name of the
// first variable merged as the suffix of global symbol name. This would
// be able to avoid the link-time naming conflict for globalm symbols.
Twine MergedGVName = HasExternal
? "_MergedGlobals_" + TheFirstExternal->getName()
: "_MergedGlobals";
StructType *MergedTy = StructType::get(M.getContext(), Tys); StructType *MergedTy = StructType::get(M.getContext(), Tys);
Constant *MergedInit = ConstantStruct::get(MergedTy, Inits); Constant *MergedInit = ConstantStruct::get(MergedTy, Inits);
// If merged variables have external linkage, we use symbol name of the
// first variable merged as the suffix of global symbol name. This would
// be able to avoid the link-time naming conflict for globalm symbols.
GlobalVariable *MergedGV = new GlobalVariable( GlobalVariable *MergedGV = new GlobalVariable(
M, MergedTy, isConst, Linkage, MergedInit, MergedGVName, nullptr, M, MergedTy, isConst, Linkage, MergedInit,
GlobalVariable::NotThreadLocal, AddrSpace); HasExternal ? "_MergedGlobals_" + TheFirstExternal->getName()
: "_MergedGlobals",
nullptr, GlobalVariable::NotThreadLocal, AddrSpace);
for (size_t k = i; k < j; ++k) { for (size_t k = i; k < j; ++k) {
GlobalValue::LinkageTypes Linkage = Globals[k]->getLinkage(); GlobalValue::LinkageTypes Linkage = Globals[k]->getLinkage();

View File

@ -737,9 +737,8 @@ void Triple::setObjectFormat(ObjectFormatType Kind) {
if (Environment == UnknownEnvironment) if (Environment == UnknownEnvironment)
return setEnvironmentName(getObjectFormatTypeName(Kind)); return setEnvironmentName(getObjectFormatTypeName(Kind));
Twine Env = getEnvironmentTypeName(Environment) + Twine("-") + setEnvironmentName((getEnvironmentTypeName(Environment) + Twine("-") +
getObjectFormatTypeName(Kind); getObjectFormatTypeName(Kind)).str());
setEnvironmentName(Env.str());
} }
void Triple::setArchName(StringRef Str) { void Triple::setArchName(StringRef Str) {

View File

@ -242,21 +242,25 @@ bool llvm::UnrollLoop(Loop *L, unsigned Count, unsigned TripCount,
Twine("completely unrolled loop with ") + Twine("completely unrolled loop with ") +
Twine(TripCount) + " iterations"); Twine(TripCount) + " iterations");
} else { } else {
auto EmitDiag = [&](const Twine &T) {
emitOptimizationRemark(Ctx, DEBUG_TYPE, *F, LoopLoc,
"unrolled loop by a factor of " + Twine(Count) +
T);
};
DEBUG(dbgs() << "UNROLLING loop %" << Header->getName() DEBUG(dbgs() << "UNROLLING loop %" << Header->getName()
<< " by " << Count); << " by " << Count);
Twine DiagMsg("unrolled loop by a factor of " + Twine(Count));
if (TripMultiple == 0 || BreakoutTrip != TripMultiple) { if (TripMultiple == 0 || BreakoutTrip != TripMultiple) {
DEBUG(dbgs() << " with a breakout at trip " << BreakoutTrip); DEBUG(dbgs() << " with a breakout at trip " << BreakoutTrip);
DiagMsg.concat(" with a breakout at trip " + Twine(BreakoutTrip)); EmitDiag(" with a breakout at trip " + Twine(BreakoutTrip));
} else if (TripMultiple != 1) { } else if (TripMultiple != 1) {
DEBUG(dbgs() << " with " << TripMultiple << " trips per branch"); DEBUG(dbgs() << " with " << TripMultiple << " trips per branch");
DiagMsg.concat(" with " + Twine(TripMultiple) + " trips per branch"); EmitDiag(" with " + Twine(TripMultiple) + " trips per branch");
} else if (RuntimeTripCount) { } else if (RuntimeTripCount) {
DEBUG(dbgs() << " with run-time trip count"); DEBUG(dbgs() << " with run-time trip count");
DiagMsg.concat(" with run-time trip count"); EmitDiag(" with run-time trip count");
} }
DEBUG(dbgs() << "!\n"); DEBUG(dbgs() << "!\n");
emitOptimizationRemark(Ctx, DEBUG_TYPE, *F, LoopLoc, DiagMsg);
} }
bool ContinueOnTrue = L->contains(BI->getSuccessor(0)); bool ContinueOnTrue = L->contains(BI->getSuccessor(0));