1; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s 2 3declare i8* @llvm.frameallocate(i32) 4declare i8* @llvm.framerecover(i8*, i8*) 5 6define internal void @f() { 7 call i8* @llvm.frameallocate(i32 4) 8 call i8* @llvm.frameallocate(i32 4) 9 ret void 10} 11; CHECK: multiple calls to llvm.frameallocate in one function 12 13define internal void @f_a(i32 %n) { 14 call i8* @llvm.frameallocate(i32 %n) 15 ret void 16} 17; CHECK: llvm.frameallocate argument must be constant integer size 18 19define internal void @g() { 20entry: 21 br label %not_entry 22not_entry: 23 call i8* @llvm.frameallocate(i32 4) 24 ret void 25} 26; CHECK: llvm.frameallocate used outside of entry block 27 28define internal void @h() { 29 call i8* @llvm.framerecover(i8* null, i8* null) 30 ret void 31} 32; CHECK: llvm.framerecover first argument must be function defined in this module 33 34@global = constant i8 0 35 36declare void @declaration() 37 38define internal void @i() { 39 call i8* @llvm.framerecover(i8* @global, i8* null) 40 ret void 41} 42; CHECK: llvm.framerecover first argument must be function defined in this module 43 44define internal void @j() { 45 call i8* @llvm.framerecover(i8* bitcast(void()* @declaration to i8*), i8* null) 46 ret void 47} 48; CHECK: llvm.framerecover first argument must be function defined in this module 49