aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/NaCl/rewrite-longjmp-noncall-uses.ll
blob: ed7818ec96881eaf068bb22a4d3552da1e87e0de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
; RUN: opt < %s -rewrite-pnacl-library-calls -S | FileCheck %s
; Check that the rewrite pass behaves correctly in the presence 
; of various uses of longjmp that are not calls.

@fp = global void (i64*, i32)* @longjmp, align 8
; CHECK: @fp = global void (i64*, i32)* @longjmp, align 8
@arrfp = global [3 x void (i64*, i32)*] [void (i64*, i32)* null, void (i64*, i32)* @longjmp, void (i64*, i32)* null], align 16
; CHECK: @arrfp = global [3 x void (i64*, i32)*] [void (i64*, i32)* null, void (i64*, i32)* @longjmp, void (i64*, i32)* null], align 16

; CHECK: define internal void @longjmp(i64* %env, i32 %val) {

declare void @longjmp(i64*, i32)

declare void @somefunc(i8*)

define void @foo() {
entry:
  call void @somefunc(i8* bitcast (void (i64*, i32)* @longjmp to i8*))
; CHECK: call void @somefunc(i8* bitcast (void (i64*, i32)* @longjmp to i8*))
  ret void
}