; RUN: llvm-as < %s | llvm-dis | FileCheck %s ; RUN: verify-uselistorder < %s ; PR9857 define void @f(i8** nocapture %ptr1) { ; CHECK: define void @f entry: br label %here.i here.i: store i8* blockaddress(@doit, %here), i8** %ptr1, align 8 ; CHECK: blockaddress(@doit, %here) br label %doit.exit doit.exit: ret void } define void @doit(i8** nocapture %pptr) { ; CHECK: define void @doit entry: br label %here here: store i8* blockaddress(@doit, %here), i8** %pptr, align 8 ; CHECK: blockaddress(@doit, %here) br label %end end: ret void } ; PR13895 define void @doitagain(i8** nocapture %pptr) { ; CHECK: define void @doitagain entry: br label %here here: store i8* blockaddress(@doit, %here), i8** %pptr, align 8 ; CHECK: blockaddress(@doit, %here) br label %end end: ret void } ; Check a blockaddress taken in two separate functions before the referenced ; function. define i8* @take1() { ret i8* blockaddress(@taken, %bb) } define i8* @take2() { ret i8* blockaddress(@taken, %bb) } define void @taken() { unreachable bb: unreachable }