Skip to content

Commit fab60a6

Browse files
authored
[NFC][sanitizer] Simplify ThreadDescriptorSizeFallback using early return (#108908)
1 parent a20794b commit fab60a6

File tree

1 file changed

+20
-21
lines changed

1 file changed

+20
-21
lines changed

compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -250,37 +250,37 @@ void InitTlsSize() {}
250250
static atomic_uintptr_t thread_descriptor_size;
251251

252252
static uptr ThreadDescriptorSizeFallback() {
253-
uptr val = 0;
254253
# if defined(__x86_64__) || defined(__i386__) || defined(__arm__)
255254
int major;
256255
int minor;
257256
int patch;
258257
if (GetLibcVersion(&major, &minor, &patch) && major == 2) {
259258
/* sizeof(struct pthread) values from various glibc versions. */
260259
if (SANITIZER_X32)
261-
val = 1728; // Assume only one particular version for x32.
260+
return 1728; // Assume only one particular version for x32.
262261
// For ARM sizeof(struct pthread) changed in Glibc 2.23.
263262
else if (SANITIZER_ARM)
264-
val = minor <= 22 ? 1120 : 1216;
263+
return minor <= 22 ? 1120 : 1216;
265264
else if (minor <= 3)
266-
val = FIRST_32_SECOND_64(1104, 1696);
265+
return FIRST_32_SECOND_64(1104, 1696);
267266
else if (minor == 4)
268-
val = FIRST_32_SECOND_64(1120, 1728);
267+
return FIRST_32_SECOND_64(1120, 1728);
269268
else if (minor == 5)
270-
val = FIRST_32_SECOND_64(1136, 1728);
269+
return FIRST_32_SECOND_64(1136, 1728);
271270
else if (minor <= 9)
272-
val = FIRST_32_SECOND_64(1136, 1712);
271+
return FIRST_32_SECOND_64(1136, 1712);
273272
else if (minor == 10)
274-
val = FIRST_32_SECOND_64(1168, 1776);
273+
return FIRST_32_SECOND_64(1168, 1776);
275274
else if (minor == 11 || (minor == 12 && patch == 1))
276-
val = FIRST_32_SECOND_64(1168, 2288);
275+
return FIRST_32_SECOND_64(1168, 2288);
277276
else if (minor <= 14)
278-
val = FIRST_32_SECOND_64(1168, 2304);
277+
return FIRST_32_SECOND_64(1168, 2304);
279278
else if (minor < 32) // Unknown version
280-
val = FIRST_32_SECOND_64(1216, 2304);
279+
return FIRST_32_SECOND_64(1216, 2304);
281280
else // minor == 32
282-
val = FIRST_32_SECOND_64(1344, 2496);
281+
return FIRST_32_SECOND_64(1344, 2496);
283282
}
283+
return 0;
284284
# elif defined(__s390__) || defined(__sparc__)
285285
// The size of a prefix of TCB including pthread::{specific_1stblock,specific}
286286
// suffices. Just return offsetof(struct pthread, specific_used), which hasn't
@@ -290,9 +290,9 @@ static uptr ThreadDescriptorSizeFallback() {
290290
return FIRST_32_SECOND_64(524, 1552);
291291
# elif defined(__mips__)
292292
// TODO(sagarthakur): add more values as per different glibc versions.
293-
val = FIRST_32_SECOND_64(1152, 1776);
293+
return FIRST_32_SECOND_64(1152, 1776);
294294
# elif SANITIZER_LOONGARCH64
295-
val = 1856; // from glibc 2.36
295+
return 1856; // from glibc 2.36
296296
# elif SANITIZER_RISCV64
297297
int major;
298298
int minor;
@@ -301,20 +301,19 @@ static uptr ThreadDescriptorSizeFallback() {
301301
// TODO: consider adding an optional runtime check for an unknown (untested)
302302
// glibc version
303303
if (minor <= 28) // WARNING: the highest tested version is 2.29
304-
val = 1772; // no guarantees for this one
304+
return 1772; // no guarantees for this one
305305
else if (minor <= 31)
306-
val = 1772; // tested against glibc 2.29, 2.31
306+
return 1772; // tested against glibc 2.29, 2.31
307307
else
308-
val = 1936; // tested against glibc 2.32
308+
return 1936; // tested against glibc 2.32
309309
}
310-
310+
return 0;
311311
# elif defined(__aarch64__)
312312
// The sizeof (struct pthread) is the same from GLIBC 2.17 to 2.22.
313-
val = 1776;
313+
return 1776;
314314
# elif defined(__powerpc64__)
315-
val = 1776; // from glibc.ppc64le 2.20-8.fc21
315+
return 1776; // from glibc.ppc64le 2.20-8.fc21
316316
# endif
317-
return val;
318317
}
319318

320319
uptr ThreadDescriptorSize() {

0 commit comments

Comments
 (0)