mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 06:30:39 +00:00
Don't forget that strcpy and friends return a pointer to the destination, so
it's not a dead store if that pointer is used. Whoops! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164583 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e5510db57c
commit
24ab21c691
@ -266,8 +266,8 @@ static bool isRemovable(Instruction *I) {
|
||||
}
|
||||
}
|
||||
|
||||
if (CallSite(I)) // If we assume hasMemoryWrite(I) is true,
|
||||
return true; // then there's nothing left to check.
|
||||
if (CallSite CS = I)
|
||||
return CS.getInstruction()->use_empty();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -44,3 +44,13 @@ define void @test4(i8* %src) {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @test5(i8* nocapture %src) {
|
||||
; CHECK: @test5
|
||||
%dest = alloca [100 x i8], align 16
|
||||
%arraydecay = getelementptr inbounds [100 x i8]* %dest, i64 0, i64 0
|
||||
%call = call i8* @strcpy(i8* %arraydecay, i8* %src)
|
||||
; CHECK: %call = call i8* @strcpy
|
||||
%arrayidx = getelementptr inbounds i8* %call, i64 10
|
||||
store i8 97, i8* %arrayidx, align 1
|
||||
ret void
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user