[v2] eal/windows: resolve conversion and truncation warnings
Checks
Commit Message
* Initialize const int NS_PER_SEC with an integer literal instead of
double thereby avoiding implicit conversion from double to int.
* Cast the result of the expression assigned to timespec.tv_nsec to long.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
---
v2:
* update commit message to correct misspelled timspec -> timespec,
remove remarks about casting to long they were unnecessary.
lib/eal/windows/include/rte_os_shim.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
On Thu, Mar 07, 2024 at 10:34:42AM -0800, Tyler Retzlaff wrote:
> * Initialize const int NS_PER_SEC with an integer literal instead of
> double thereby avoiding implicit conversion from double to int.
>
> * Cast the result of the expression assigned to timespec.tv_nsec to long.
>
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
>
> v2:
> * update commit message to correct misspelled timspec -> timespec,
> remove remarks about casting to long they were unnecessary.
>
> lib/eal/windows/include/rte_os_shim.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h
> index eda8113..19b12e9 100644
> --- a/lib/eal/windows/include/rte_os_shim.h
> +++ b/lib/eal/windows/include/rte_os_shim.h
> @@ -87,7 +87,7 @@
> static inline int
> rte_clock_gettime(clockid_t clock_id, struct timespec *tp)
> {
> - const int NS_PER_SEC = 1E9;
> + const int NS_PER_SEC = 1000000000;
Just for readability, and the immediate visibility of errors, could this be
rewritten as (1000 * 1000 * 1000). That avoids us having to count the zeros
to know that the number is correct.
BTW: is "int" still the best type to use for this value? Would it be better
as a #define?
/Bruce
> LARGE_INTEGER pf, pc;
> LONGLONG nsec;
>
> @@ -102,7 +102,7 @@
>
> nsec = pc.QuadPart * NS_PER_SEC / pf.QuadPart;
> tp->tv_sec = nsec / NS_PER_SEC;
> - tp->tv_nsec = nsec - tp->tv_sec * NS_PER_SEC;
> + tp->tv_nsec = (long)(nsec - tp->tv_sec * NS_PER_SEC);
> return 0;
> default:
> return -1;
> --
> 1.8.3.1
>
On Thu, Mar 07, 2024 at 08:53:49PM +0000, Bruce Richardson wrote:
> On Thu, Mar 07, 2024 at 10:34:42AM -0800, Tyler Retzlaff wrote:
> > * Initialize const int NS_PER_SEC with an integer literal instead of
> > double thereby avoiding implicit conversion from double to int.
> >
> > * Cast the result of the expression assigned to timespec.tv_nsec to long.
> >
> > Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> > Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> > ---
> >
> > v2:
> > * update commit message to correct misspelled timspec -> timespec,
> > remove remarks about casting to long they were unnecessary.
> >
> > lib/eal/windows/include/rte_os_shim.h | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h
> > index eda8113..19b12e9 100644
> > --- a/lib/eal/windows/include/rte_os_shim.h
> > +++ b/lib/eal/windows/include/rte_os_shim.h
> > @@ -87,7 +87,7 @@
> > static inline int
> > rte_clock_gettime(clockid_t clock_id, struct timespec *tp)
> > {
> > - const int NS_PER_SEC = 1E9;
> > + const int NS_PER_SEC = 1000000000;
>
> Just for readability, and the immediate visibility of errors, could this be
> rewritten as (1000 * 1000 * 1000). That avoids us having to count the zeros
> to know that the number is correct.
>
> BTW: is "int" still the best type to use for this value? Would it be better
> as a #define?
i think to save spot fixing i'm going to withdraw the series for now. i
need to come back later and deal with warnings from MSVC more
comprehensively anyway.
thanks folks!
>
> /Bruce
>
> > LARGE_INTEGER pf, pc;
> > LONGLONG nsec;
> >
> > @@ -102,7 +102,7 @@
> >
> > nsec = pc.QuadPart * NS_PER_SEC / pf.QuadPart;
> > tp->tv_sec = nsec / NS_PER_SEC;
> > - tp->tv_nsec = nsec - tp->tv_sec * NS_PER_SEC;
> > + tp->tv_nsec = (long)(nsec - tp->tv_sec * NS_PER_SEC);
> > return 0;
> > default:
> > return -1;
> > --
> > 1.8.3.1
> >
@@ -87,7 +87,7 @@
static inline int
rte_clock_gettime(clockid_t clock_id, struct timespec *tp)
{
- const int NS_PER_SEC = 1E9;
+ const int NS_PER_SEC = 1000000000;
LARGE_INTEGER pf, pc;
LONGLONG nsec;
@@ -102,7 +102,7 @@
nsec = pc.QuadPart * NS_PER_SEC / pf.QuadPart;
tp->tv_sec = nsec / NS_PER_SEC;
- tp->tv_nsec = nsec - tp->tv_sec * NS_PER_SEC;
+ tp->tv_nsec = (long)(nsec - tp->tv_sec * NS_PER_SEC);
return 0;
default:
return -1;