4
4
#![ feature( explicit_tail_calls) ]
5
5
#![ crate_type = "lib" ]
6
6
7
- // CHECK-LABEL: @ with_tail
7
+ // CHECK-LABEL: define {{.*}}@{{.*}} with_tail{{.*}}
8
8
pub fn with_tail ( n : u32 ) -> u32 {
9
- // CHECK: tail call noundef i32 @ {{.*}}with_tail {{.*}}(i32 noundef % {{.*}})
9
+ // CHECK: tail call {{.*}}@ {{.*}}with_tail {{.*}}
10
10
if n == 0 { 0 } else { become with_tail ( n - 1 ) }
11
11
}
12
12
13
- // CHECK-LABEL: @ no_tail
13
+ // CHECK-LABEL: define {{.*}}@{{.*}} no_tail{{.*}}
14
14
pub fn no_tail ( n : u32 ) -> u32 {
15
15
// CHECK-NOT: tail call
16
- // CHECK: call noundef i32 @ {{.*}}no_tail {{.*}}(i32 noundef % {{.*}})
16
+ // CHECK: call {{.*}}@ {{.*}}no_tail {{.*}}
17
17
if n == 0 { 0 } else { no_tail ( n - 1 ) }
18
18
}
19
19
20
- // CHECK-LABEL: @ even_with_tail
20
+ // CHECK-LABEL: define {{.*}}@{{.*}} even_with_tail{{.*}}
21
21
pub fn even_with_tail ( n : u32 ) -> bool {
22
- // CHECK: tail call noundef {{.*}} @{{.*}}odd_with_tail{{.*}}(i32 noundef %{{.*}})
22
+ // CHECK: tail call {{.*}}@{{.*}}odd_with_tail{{.*}}
23
23
match n {
24
24
0 => true ,
25
25
_ => become odd_with_tail ( n - 1 ) ,
26
26
}
27
27
}
28
28
29
- // CHECK-LABEL: @ odd_with_tail
29
+ // CHECK-LABEL: define {{.*}}@{{.*}} odd_with_tail{{.*}}
30
30
pub fn odd_with_tail ( n : u32 ) -> bool {
31
- // CHECK: tail call noundef {{.*}} @{{.*}}even_with_tail{{.*}}(i32 noundef %{{.*}})
31
+ // CHECK: tail call {{.*}}@{{.*}}even_with_tail{{.*}}
32
32
match n {
33
33
0 => false ,
34
34
_ => become even_with_tail ( n - 1 ) ,
35
35
}
36
36
}
37
37
38
- // CHECK-LABEL: @ even_no_tail
38
+ // CHECK-LABEL: define {{.*}}@{{.*}} even_no_tail{{.*}}
39
39
pub fn even_no_tail ( n : u32 ) -> bool {
40
40
// CHECK-NOT: tail call
41
- // CHECK: call noundef {{.*}} @{{.*}}odd_no_tail{{.*}}(i32 noundef %{{.*}})
41
+ // CHECK: call {{.*}}@{{.*}}odd_no_tail{{.*}}
42
42
match n {
43
43
0 => true ,
44
44
_ => odd_no_tail ( n - 1 ) ,
45
45
}
46
46
}
47
47
48
- // CHECK-LABEL: @ odd_no_tail
48
+ // CHECK-LABEL: define {{.*}}@{{.*}} odd_no_tail{{.*}}
49
49
pub fn odd_no_tail ( n : u32 ) -> bool {
50
50
// CHECK-NOT: tail call
51
- // CHECK: call noundef {{.*}} @{{.*}}even_no_tail{{.*}}(i32 noundef %{{.*}})
51
+ // CHECK: call {{.*}}@{{.*}}even_no_tail{{.*}}
52
52
match n {
53
53
0 => false ,
54
54
_ => even_no_tail ( n - 1 ) ,
55
55
}
56
- }
56
+ }
0 commit comments