修订版 | 2a193e9df82917eaf440a20f99a3febe91dcb5fe (tree) |
---|---|
时间 | 2022-11-12 17:50:04 |
作者 | Jakub Jelinek <jakub@redh...> |
Commiter | Jakub Jelinek |
libgomp: Fix up build on mingw [PR107641]
Pointers should be first casted to intptr_t/uintptr_t before casting
them to another integral type to avoid warnings.
Furthermore, the function has code like
so it seems using unsigned type for upper where upper <= UINT_MAX is always
true is not intended.
2022-11-12 Jakub Jelinek <jakub@redhat.com>
PR libgomp/107641
* env.c (parse_unsigned_long): Cast params[2] to uintptr_t rather than
unsigned long. Change type of upper from unsigned to unsigned long.
@@ -283,7 +283,7 @@ parse_unsigned_long_1 (const char *env, const char *val, unsigned long *pvalue, | ||
283 | 283 | static bool |
284 | 284 | parse_unsigned_long (const char *env, const char *val, void *const params[]) |
285 | 285 | { |
286 | - unsigned upper = (unsigned long) params[2]; | |
286 | + unsigned long upper = (uintptr_t) params[2]; | |
287 | 287 | unsigned long pvalue = 0; |
288 | 288 | bool ret = parse_unsigned_long_1 (env, val, &pvalue, (bool) params[1]); |
289 | 289 | if (!ret) |