From 2a193e9df82917eaf440a20f99a3febe91dcb5fe Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 12 Nov 2022 09:47:50 +0100 Subject: [PATCH] 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 else if (upper <= UINT_MAX) something; else something_else; so it seems using unsigned type for upper where upper <= UINT_MAX is always true is not intended. 2022-11-12 Jakub Jelinek 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. --- libgomp/env.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libgomp/env.c b/libgomp/env.c index 0249966e8a6f..279937bb36cb 100644 --- a/libgomp/env.c +++ b/libgomp/env.c @@ -283,7 +283,7 @@ parse_unsigned_long_1 (const char *env, const char *val, unsigned long *pvalue, static bool parse_unsigned_long (const char *env, const char *val, void *const params[]) { - unsigned upper = (unsigned long) params[2]; + unsigned long upper = (uintptr_t) params[2]; unsigned long pvalue = 0; bool ret = parse_unsigned_long_1 (env, val, &pvalue, (bool) params[1]); if (!ret) -- 2.47.2