本文整理汇总了C++中module::iterator::hasAppendingLinkage方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::hasAppendingLinkage方法的具体用法?C++ iterator::hasAppendingLinkage怎么用?C++ iterator::hasAppendingLinkage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类module::iterator
的用法示例。
在下文中一共展示了iterator::hasAppendingLinkage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: changeLinkageTypes
/* Change linkages of global values, in order to
* improve alias analysis.
*/
bool DeadStoreEliminationPass::changeLinkageTypes(Module &M) {
DEBUG(errs() << "Changing linkages to private...\n");
for (Module::global_iterator git = M.global_begin(), gitE = M.global_end();
git != gitE; ++git) {
DEBUG(errs() << " " << *git << "\n");
if (!git->hasExternalLinkage() && !git->hasAppendingLinkage()) git->setLinkage(GlobalValue::PrivateLinkage);
}
for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
if (!F->isDeclaration()) {
if (!F->hasExternalLinkage() && !F->hasAppendingLinkage()) F->setLinkage(GlobalValue::PrivateLinkage);
DEBUG(errs() << " " << F->getName() << "\n");
}
}
DEBUG(errs() << "\n");
return true;
}