Revert "r225811 - Revert "r225808 - [PowerPC] Add StackMap/PatchPoint support""
[oota-llvm.git] / test / Verifier / frameallocate.ll
1 ; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
2
3 declare i8* @llvm.frameallocate(i32)
4 declare i8* @llvm.framerecover(i8*, i8*)
5
6 define 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
13 define 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
19 define internal void @g() {
20 entry:
21   br label %not_entry
22 not_entry:
23   call i8* @llvm.frameallocate(i32 4)
24   ret void
25 }
26 ; CHECK: llvm.frameallocate used outside of entry block
27
28 define 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
36 declare void @declaration()
37
38 define 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
44 define 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