[FunctionAttrs] Correct the safety analysis for inference of 'returned'
authorDavid Majnemer <david.majnemer@gmail.com>
Tue, 19 Jul 2016 18:50:26 +0000 (18:50 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Tue, 19 Jul 2016 18:50:26 +0000 (18:50 +0000)
commit5246e0b2c25c293e6896e3a6fff63ade00fcb54e
treecf68f8163eb170188b6c4bdba0011716ebcae5eb
parent63266b6be54c538037dad1f3a4e4f6b6c3cd1744
[FunctionAttrs] Correct the safety analysis for inference of 'returned'

We skipped over ReturnInsts which didn't return an argument which would
lead us to incorrectly conclude that an argument returned by another
ReturnInst was 'returned'.

This reverts commit r275756.

This fixes PR28610.

llvm-svn: 276008
llvm/lib/Transforms/IPO/FunctionAttrs.cpp
llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
llvm/test/Transforms/FunctionAttrs/nocapture.ll
llvm/test/Transforms/FunctionAttrs/readattrs.ll