| ; RUN: opt < %s -functionattrs -S | FileCheck %s | |
| ; CHECK: define i32* @a(i32** nocapture readonly %p) | |
| define i32* @a(i32** %p) { | |
| %tmp = load 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 %r) | |
| @g = global i32 0 | |
| define i32* @c(i32 *%r) { | |
| %a = icmp eq i32* %r, null | |
| store i32 1, i32* @g | |
| ret i32* %r | |
| } |