@@ -5,7 +5,7 @@ bool f(bool *x) {
5
5
return *x;
6
6
}
7
7
// CHECK-LABEL: define{{.*}} zeroext i1 @_Z1fPb
8
- // CHECK: load i8, ptr %{{[^ ]*}}, align 1, !range [[RANGE_i8_0_2:![^ ]* ]]
8
+ // CHECK: load i8, ptr %{{[^ ]*}}, align 1, !range [[RANGE_i8_0_2:![0-9]+]], !noundef [[NOUNDEF:![0-9]+ ]]
9
9
10
10
// Only enum-tests follow. Ensure that after the bool test, no further range
11
11
// metadata shows up when strict enums are disabled.
@@ -32,63 +32,63 @@ e3 g3(e3 *x) {
32
32
return *x;
33
33
}
34
34
// CHECK-LABEL: define{{.*}} i32 @_Z2g3P2e3
35
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_0_32:![^ ]* ]]
35
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_0_32:![0-9]+]], !noundef [[NOUNDEF ]]
36
36
37
37
enum e4 { e4_a = -16 };
38
38
e4 g4 (e4 *x) {
39
39
return *x;
40
40
}
41
41
// CHECK-LABEL: define{{.*}} i32 @_Z2g4P2e4
42
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m16_16:![^ ]* ]]
42
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m16_16:![0-9]+]], !noundef [[NOUNDEF ]]
43
43
44
44
enum e5 { e5_a = -16 , e5_b = 16 };
45
45
e5 g5 (e5 *x) {
46
46
return *x;
47
47
}
48
48
// CHECK-LABEL: define{{.*}} i32 @_Z2g5P2e5
49
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m32_32:![^ ]* ]]
49
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m32_32:![0-9]+]], !noundef [[NOUNDEF ]]
50
50
51
51
enum e6 { e6_a = -1 };
52
52
e6 g6 (e6 *x) {
53
53
return *x;
54
54
}
55
55
// CHECK-LABEL: define{{.*}} i32 @_Z2g6P2e6
56
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m1_1:![^ ]* ]]
56
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m1_1:![0-9]+]], !noundef [[NOUNDEF ]]
57
57
58
58
enum e7 { e7_a = -16 , e7_b = 2 };
59
59
e7 g7 (e7 *x) {
60
60
return *x;
61
61
}
62
62
// CHECK-LABEL: define{{.*}} i32 @_Z2g7P2e7
63
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m16_16]]
63
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m16_16]], !noundef [[NOUNDEF]]
64
64
65
65
enum e8 { e8_a = -17 };
66
66
e8 g8 (e8 *x) {
67
67
return *x;
68
68
}
69
69
// CHECK-LABEL: define{{.*}} i32 @_Z2g8P2e8
70
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m32_32:![^ ]* ]]
70
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m32_32:![0-9]+]], !noundef [[NOUNDEF ]]
71
71
72
72
enum e9 { e9_a = 17 };
73
73
e9 g9 (e9 *x) {
74
74
return *x;
75
75
}
76
76
// CHECK-LABEL: define{{.*}} i32 @_Z2g9P2e9
77
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_0_32]]
77
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_0_32]], !noundef [[NOUNDEF]]
78
78
79
79
enum e10 { e10_a = -16 , e10_b = 32 };
80
80
e10 g10 (e10 *x) {
81
81
return *x;
82
82
}
83
83
// CHECK-LABEL: define{{.*}} i32 @_Z3g10P3e10
84
- // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m64_64:![^ ]* ]]
84
+ // CHECK: load i32, ptr %x, align 4, !range [[RANGE_i32_m64_64:![0-9]+]], !noundef [[NOUNDEF ]]
85
85
86
86
enum e11 {e11_a = 4294967296 };
87
87
enum e11 g11 (enum e11 *x) {
88
88
return *x;
89
89
}
90
90
// CHECK-LABEL: define{{.*}} i64 @_Z3g11P3e11
91
- // CHECK: load i64, ptr %x, align {{[84]}}, !range [[RANGE_i64_0_2pow33:![^ ]* ]]
91
+ // CHECK: load i64, ptr %x, align {{[84]}}, !range [[RANGE_i64_0_2pow33:![0-9]+]], !noundef [[NOUNDEF ]]
92
92
93
93
enum e12 {e12_a = 9223372036854775808U };
94
94
enum e12 g12 (enum e12 *x) {
@@ -137,6 +137,7 @@ e16 g16(e16 *x) {
137
137
138
138
139
139
// CHECK: [[RANGE_i8_0_2]] = !{i8 0, i8 2}
140
+ // CHECK: [[NOUNDEF]] = !{}
140
141
// CHECK: [[RANGE_i32_0_32]] = !{i32 0, i32 32}
141
142
// CHECK: [[RANGE_i32_m16_16]] = !{i32 -16, i32 16}
142
143
// CHECK: [[RANGE_i32_m32_32]] = !{i32 -32, i32 32}
0 commit comments