mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-28 08:16:14 +00:00

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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276008 91177308-0d34-0410-b5e6-96231b3b80d8
24 lines
493 B
LLVM
24 lines
493 B
LLVM
; RUN: opt < %s -functionattrs -S | FileCheck %s
|
|
|
|
; CHECK: define i32* @a(i32** nocapture readonly %p)
|
|
define i32* @a(i32** %p) {
|
|
%tmp = load i32*, i32** %p
|
|
ret i32* %tmp
|
|
}
|
|
|
|
; CHECK: define i32* @b(i32* %q)
|
|
define i32* @b(i32 *%q) {
|
|
%mem = alloca i32*
|
|
store i32* %q, i32** %mem
|
|
%tmp = call i32* @a(i32** %mem)
|
|
ret i32* %tmp
|
|
}
|
|
|
|
; CHECK: define i32* @c(i32* readnone returned %r)
|
|
@g = global i32 0
|
|
define i32* @c(i32 *%r) {
|
|
%a = icmp eq i32* %r, null
|
|
store i32 1, i32* @g
|
|
ret i32* %r
|
|
}
|