From: Jakub Jelinek Date: Mon, 14 Nov 2022 08:15:08 +0000 (+0100) Subject: libgomp: Fix up build on mingw [PR107641] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c56df70095fc101648928cb31a4c73b68ee911bb;p=thirdparty%2Fgcc.git 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. (cherry picked from commit 2a193e9df82917eaf440a20f99a3febe91dcb5fe) --- diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp index 95d5186606c9..7e117fd50101 100644 --- a/libgomp/ChangeLog.omp +++ b/libgomp/ChangeLog.omp @@ -1,3 +1,12 @@ +2022-11-14 Tobias Burnus + + Backport from mainline: + 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. + 2022-11-04 Tobias Burnus * testsuite/libgomp.fortran/target-13.f90: Remove strides to match 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)