diff options
author | Jakub Kuderski <jakub.kuderski@arm.com> | 2015-09-08 10:36:42 +0000 |
---|---|---|
committer | Jakub Kuderski <jakub.kuderski@arm.com> | 2015-09-08 10:36:42 +0000 |
commit | f50ab0ffce8fdb58a0859e070ecd660c0ed8f6cd (patch) | |
tree | fb67f13728783e97a7604f8e79f022bbf0efa161 /llvm/docs/MIRLangRef.rst | |
parent | 3f1153869faa1df53ad0a84f6cfebfeab78cfaff (diff) | |
download | bcm5719-llvm-f50ab0ffce8fdb58a0859e070ecd660c0ed8f6cd.tar.gz bcm5719-llvm-f50ab0ffce8fdb58a0859e070ecd660c0ed8f6cd.zip |
findDominatingStoreToReturn in CGCall.cpp didn't check if a candidate store
instruction used the ReturnValue as pointer operand or value operand. This
led to wrong code gen - in later stages (load-store elision code) the found
store and its operand would be erased, causing ReturnValue to become a <badref>.
The patch adds a check that makes sure that ReturnValue is a pointer operand of
store instruction. Regression test is also added.
This fixes PR24386.
Differential Revision: http://reviews.llvm.org/D12400
llvm-svn: 247003
Diffstat (limited to 'llvm/docs/MIRLangRef.rst')
0 files changed, 0 insertions, 0 deletions