diff options
author | Pete Cooper <peter_cooper@apple.com> | 2016-05-27 02:13:53 +0000 |
---|---|---|
committer | Pete Cooper <peter_cooper@apple.com> | 2016-05-27 02:13:53 +0000 |
commit | 1929b5539aa2e183555baab043c2a2f9601ce6de (patch) | |
tree | f20cd78e69b8bfedcb7ae179a179315a6c8362ed /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | b822424f476d86ead8f28cde6f62cdaa759e3aa4 (diff) | |
download | bcm5719-llvm-1929b5539aa2e183555baab043c2a2f9601ce6de.tar.gz bcm5719-llvm-1929b5539aa2e183555baab043c2a2f9601ce6de.zip |
Form objc_storeStrong in the presence of bitcasts.
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.
llvm-svn: 270955
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions