mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-25 15:41:05 +00:00

objc_storeStrong can be formed from a sequence such as %0 = tail call i8* @objc_retain(i8* %p) nounwind %tmp = load i8*, i8** @x, align 8 store i8* %0, i8** @x, align 8 tail call void @objc_release(i8* %tmp) nounwind The code was already looking through bitcasts for most of the values involved, but had missed one case where the pointer operand for the store was a bitcast. Ultimately the pointer for the load and store have to be the same value, after stripping casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270955 91177308-0d34-0410-b5e6-96231b3b80d8