12
12
13
13
#include < errno.h>
14
14
#include < limits.h>
15
+ #include < stddef.h>
15
16
16
17
TEST (LlvmLibcStrToLTest, InvalidBase) {
17
18
const char *ten = " 10" ;
@@ -27,7 +28,8 @@ TEST(LlvmLibcStrToLTest, CleanBaseTenDecode) {
27
28
errno = 0 ;
28
29
ASSERT_EQ (__llvm_libc::strtol (ten, &str_end, 10 ), 10l );
29
30
ASSERT_EQ (errno, 0 );
30
- EXPECT_EQ (str_end - ten, 2l );
31
+ EXPECT_EQ (str_end - ten, ptrdiff_t (2 ));
32
+
31
33
errno = 0 ;
32
34
ASSERT_EQ (__llvm_libc::strtol (ten, nullptr , 10 ), 10l );
33
35
ASSERT_EQ (errno, 0 );
@@ -36,47 +38,47 @@ TEST(LlvmLibcStrToLTest, CleanBaseTenDecode) {
36
38
errno = 0 ;
37
39
ASSERT_EQ (__llvm_libc::strtol (hundred, &str_end, 10 ), 100l );
38
40
ASSERT_EQ (errno, 0 );
39
- EXPECT_EQ (str_end - hundred, 3l );
41
+ EXPECT_EQ (str_end - hundred, ptrdiff_t ( 3 ) );
40
42
41
43
const char *negative = " -100" ;
42
44
errno = 0 ;
43
45
ASSERT_EQ (__llvm_libc::strtol (negative, &str_end, 10 ), -100l );
44
46
ASSERT_EQ (errno, 0 );
45
- EXPECT_EQ (str_end - negative, 4l );
47
+ EXPECT_EQ (str_end - negative, ptrdiff_t ( 4 ) );
46
48
47
49
const char *big_number = " 123456789012345" ;
48
50
errno = 0 ;
49
51
ASSERT_EQ (__llvm_libc::strtol (big_number, &str_end, 10 ), 123456789012345l );
50
52
ASSERT_EQ (errno, 0 );
51
- EXPECT_EQ (str_end - big_number, 15l );
53
+ EXPECT_EQ (str_end - big_number, ptrdiff_t ( 15 ) );
52
54
53
55
const char *big_negative_number = " -123456789012345" ;
54
56
errno = 0 ;
55
57
ASSERT_EQ (__llvm_libc::strtol (big_negative_number, &str_end, 10 ),
56
58
-123456789012345l );
57
59
ASSERT_EQ (errno, 0 );
58
- EXPECT_EQ (str_end - big_negative_number, 16l );
60
+ EXPECT_EQ (str_end - big_negative_number, ptrdiff_t ( 16 ) );
59
61
60
62
const char *too_big_number = " 123456789012345678901" ;
61
63
errno = 0 ;
62
64
ASSERT_EQ (__llvm_libc::strtol (too_big_number, &str_end, 10 ), LONG_MAX);
63
65
ASSERT_EQ (errno, ERANGE);
64
- EXPECT_EQ (str_end - too_big_number, 21l );
66
+ EXPECT_EQ (str_end - too_big_number, ptrdiff_t ( 21 ) );
65
67
66
68
const char *too_big_negative_number = " -123456789012345678901" ;
67
69
errno = 0 ;
68
70
ASSERT_EQ (__llvm_libc::strtol (too_big_negative_number, &str_end, 10 ),
69
71
LONG_MIN);
70
72
ASSERT_EQ (errno, ERANGE);
71
- EXPECT_EQ (str_end - too_big_negative_number, 22l );
73
+ EXPECT_EQ (str_end - too_big_negative_number, ptrdiff_t ( 22 ) );
72
74
73
75
const char *long_number_range_test =
74
76
" 10000000000000000000000000000000000000000000000000" ;
75
77
errno = 0 ;
76
78
ASSERT_EQ (__llvm_libc::strtol (long_number_range_test, &str_end, 10 ),
77
79
LONG_MAX);
78
80
ASSERT_EQ (errno, ERANGE);
79
- EXPECT_EQ (str_end - long_number_range_test, 50l );
81
+ EXPECT_EQ (str_end - long_number_range_test, ptrdiff_t ( 50 ) );
80
82
}
81
83
82
84
TEST (LlvmLibcStrToLTest, MessyBaseTenDecode) {
@@ -86,61 +88,61 @@ TEST(LlvmLibcStrToLTest, MessyBaseTenDecode) {
86
88
errno = 0 ;
87
89
ASSERT_EQ (__llvm_libc::strtol (spaces_before, &str_end, 10 ), 10l );
88
90
ASSERT_EQ (errno, 0 );
89
- EXPECT_EQ (str_end - spaces_before, 7l );
91
+ EXPECT_EQ (str_end - spaces_before, ptrdiff_t ( 7 ) );
90
92
91
93
const char *spaces_after = " 10 " ;
92
94
errno = 0 ;
93
95
ASSERT_EQ (__llvm_libc::strtol (spaces_after, &str_end, 10 ), 10l );
94
96
ASSERT_EQ (errno, 0 );
95
- EXPECT_EQ (str_end - spaces_after, 2l );
97
+ EXPECT_EQ (str_end - spaces_after, ptrdiff_t ( 2 ) );
96
98
97
99
const char *word_before = " word10" ;
98
100
errno = 0 ;
99
101
ASSERT_EQ (__llvm_libc::strtol (word_before, &str_end, 10 ), 0l );
100
102
ASSERT_EQ (errno, 0 );
101
- EXPECT_EQ (str_end - word_before, 0l );
103
+ EXPECT_EQ (str_end - word_before, ptrdiff_t ( 0 ) );
102
104
103
105
const char *word_after = " 10word" ;
104
106
errno = 0 ;
105
107
ASSERT_EQ (__llvm_libc::strtol (word_after, &str_end, 10 ), 10l );
106
108
ASSERT_EQ (errno, 0 );
107
- EXPECT_EQ (str_end - word_after, 2l );
109
+ EXPECT_EQ (str_end - word_after, ptrdiff_t ( 2 ) );
108
110
109
111
const char *two_numbers = " 10 999" ;
110
112
errno = 0 ;
111
113
ASSERT_EQ (__llvm_libc::strtol (two_numbers, &str_end, 10 ), 10l );
112
114
ASSERT_EQ (errno, 0 );
113
- EXPECT_EQ (str_end - two_numbers, 2l );
115
+ EXPECT_EQ (str_end - two_numbers, ptrdiff_t ( 2 ) );
114
116
115
117
const char *two_signs = " --10 999" ;
116
118
errno = 0 ;
117
119
ASSERT_EQ (__llvm_libc::strtol (two_signs, &str_end, 10 ), 0l );
118
120
ASSERT_EQ (errno, 0 );
119
- EXPECT_EQ (str_end - two_signs, 1l );
121
+ EXPECT_EQ (str_end - two_signs, ptrdiff_t ( 1 ) );
120
122
121
123
const char *sign_before = " +2=4" ;
122
124
errno = 0 ;
123
125
ASSERT_EQ (__llvm_libc::strtol (sign_before, &str_end, 10 ), 2l );
124
126
ASSERT_EQ (errno, 0 );
125
- EXPECT_EQ (str_end - sign_before, 2l );
127
+ EXPECT_EQ (str_end - sign_before, ptrdiff_t ( 2 ) );
126
128
127
129
const char *sign_after = " 2+2=4" ;
128
130
errno = 0 ;
129
131
ASSERT_EQ (__llvm_libc::strtol (sign_after, &str_end, 10 ), 2l );
130
132
ASSERT_EQ (errno, 0 );
131
- EXPECT_EQ (str_end - sign_after, 1l );
133
+ EXPECT_EQ (str_end - sign_after, ptrdiff_t ( 1 ) );
132
134
133
135
const char *tab_before = " \t 10" ;
134
136
errno = 0 ;
135
137
ASSERT_EQ (__llvm_libc::strtol (tab_before, &str_end, 10 ), 10l );
136
138
ASSERT_EQ (errno, 0 );
137
- EXPECT_EQ (str_end - tab_before, 3l );
139
+ EXPECT_EQ (str_end - tab_before, ptrdiff_t ( 3 ) );
138
140
139
141
const char *all_together = " \t -12345and+67890" ;
140
142
errno = 0 ;
141
143
ASSERT_EQ (__llvm_libc::strtol (all_together, &str_end, 10 ), -12345l );
142
144
ASSERT_EQ (errno, 0 );
143
- EXPECT_EQ (str_end - all_together, 9l );
145
+ EXPECT_EQ (str_end - all_together, ptrdiff_t ( 9 ) );
144
146
}
145
147
146
148
static char int_to_b36_char (int input) {
@@ -250,13 +252,13 @@ TEST(LlvmLibcStrToLTest, CleanBaseSixteenDecode) {
250
252
errno = 0 ;
251
253
ASSERT_EQ (__llvm_libc::strtol (no_prefix, &str_end, 16 ), 0x123abcl );
252
254
ASSERT_EQ (errno, 0 );
253
- EXPECT_EQ (str_end - no_prefix, 6l );
255
+ EXPECT_EQ (str_end - no_prefix, ptrdiff_t ( 6 ) );
254
256
255
257
const char *yes_prefix = " 0x456def" ;
256
258
errno = 0 ;
257
259
ASSERT_EQ (__llvm_libc::strtol (yes_prefix, &str_end, 16 ), 0x456defl );
258
260
ASSERT_EQ (errno, 0 );
259
- EXPECT_EQ (str_end - yes_prefix, 8l );
261
+ EXPECT_EQ (str_end - yes_prefix, ptrdiff_t ( 8 ) );
260
262
}
261
263
262
264
TEST (LlvmLibcStrToLTest, AutomaticBaseSelection) {
@@ -266,24 +268,24 @@ TEST(LlvmLibcStrToLTest, AutomaticBaseSelection) {
266
268
errno = 0 ;
267
269
ASSERT_EQ (__llvm_libc::strtol (base_ten, &str_end, 0 ), 12345l );
268
270
ASSERT_EQ (errno, 0 );
269
- EXPECT_EQ (str_end - base_ten, 5l );
271
+ EXPECT_EQ (str_end - base_ten, ptrdiff_t ( 5 ) );
270
272
271
273
const char *base_sixteen_no_prefix = " 123abc" ;
272
274
errno = 0 ;
273
275
ASSERT_EQ (__llvm_libc::strtol (base_sixteen_no_prefix, &str_end, 0 ), 123l );
274
276
ASSERT_EQ (errno, 0 );
275
- EXPECT_EQ (str_end - base_sixteen_no_prefix, 3l );
277
+ EXPECT_EQ (str_end - base_sixteen_no_prefix, ptrdiff_t ( 3 ) );
276
278
277
279
const char *base_sixteen_with_prefix = " 0x456def" ;
278
280
errno = 0 ;
279
281
ASSERT_EQ (__llvm_libc::strtol (base_sixteen_with_prefix, &str_end, 0 ),
280
282
0x456defl );
281
283
ASSERT_EQ (errno, 0 );
282
- EXPECT_EQ (str_end - base_sixteen_with_prefix, 8l );
284
+ EXPECT_EQ (str_end - base_sixteen_with_prefix, ptrdiff_t ( 8 ) );
283
285
284
286
const char *base_eight_with_prefix = " 012345" ;
285
287
errno = 0 ;
286
288
ASSERT_EQ (__llvm_libc::strtol (base_eight_with_prefix, &str_end, 0 ), 012345l );
287
289
ASSERT_EQ (errno, 0 );
288
- EXPECT_EQ (str_end - base_eight_with_prefix, 6l );
290
+ EXPECT_EQ (str_end - base_eight_with_prefix, ptrdiff_t ( 6 ) );
289
291
}
0 commit comments