Fix PR2411, where ip constant prop would propagate the

result of a weak function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52137 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2008-06-09 07:58:07 +00:00
parent 93ee81e5b9
commit 18d73c206e
2 changed files with 20 additions and 0 deletions
@@ -147,6 +147,11 @@ bool IPCP::PropagateConstantReturn(Function &F) {
if (F.getReturnType() == Type::VoidTy)
return false; // No return value.
// If this function could be overridden later in the link stage, we can't
// propagate information about its results into callers.
if (F.hasLinkOnceLinkage() || F.hasWeakLinkage())
return false;
// Check to see if this function returns a constant.
SmallVector<Value *,4> RetVals;
const StructType *STy = dyn_cast<StructType>(F.getReturnType());