reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
123 assert(Fn.getFunctionType()->isVarArg() && "Function isn't varargs!"); 124 if (Fn.isDeclaration() || !Fn.hasLocalLinkage()) return false; 124 if (Fn.isDeclaration() || !Fn.hasLocalLinkage()) return false; 127 if (Fn.hasAddressTaken()) 133 if (Fn.hasFnAttribute(Attribute::Naked)) { 139 for (BasicBlock &BB : Fn) { 158 FunctionType *FTy = Fn.getFunctionType(); 166 Function *NF = Function::Create(NFTy, Fn.getLinkage(), Fn.getAddressSpace()); 166 Function *NF = Function::Create(NFTy, Fn.getLinkage(), Fn.getAddressSpace()); 167 NF->copyAttributesFrom(&Fn); 168 NF->setComdat(Fn.getComdat()); 169 Fn.getParent()->getFunctionList().insert(Fn.getIterator(), NF); 169 Fn.getParent()->getFunctionList().insert(Fn.getIterator(), NF); 170 NF->takeName(&Fn); 176 for (Value::user_iterator I = Fn.user_begin(), E = Fn.user_end(); I != E; ) { 176 for (Value::user_iterator I = Fn.user_begin(), E = Fn.user_end(); I != E; ) { 191 PAL = AttributeList::get(Fn.getContext(), PAL.getFnAttributes(), 229 NF->getBasicBlockList().splice(NF->begin(), Fn.getBasicBlockList()); 234 for (Function::arg_iterator I = Fn.arg_begin(), E = Fn.arg_end(), 234 for (Function::arg_iterator I = Fn.arg_begin(), E = Fn.arg_end(), 243 Fn.getAllMetadata(MDs); 248 Fn.replaceAllUsesWith(ConstantExpr::getBitCast(NF, Fn.getType())); 248 Fn.replaceAllUsesWith(ConstantExpr::getBitCast(NF, Fn.getType())); 253 Fn.eraseFromParent();