[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] FIX: Cast the time_t values to avoid warnings



On Sun, 2013-04-28 at 00:32 +0100, 7heo wrote:
> I added 4 casts from time_t to unsigned long long
> int in the libxl_sprintf functions, so there is no
> warning at compilation time (and no failing with
> -Werror).
> 
> The casting format has been discussed, and since
> the long long int is preferable, the syntax of
> the libxl_sprintf second argument has been
> changed.

Thanks.
1
> Signed-off-by: 7heo <7heo@xxxxxxx>
> ---
>  tools/libxl/libxl_create.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index cb9c822..be1b446 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -350,7 +350,7 @@ int libxl__domain_build(libxl__gc *gc,
>          vments[2] = "image/ostype";
>          vments[3] = "hvm";
>          vments[4] = "start_time";
> -        vments[5] = libxl__sprintf(gc, "%lu.%02d", 
> start_time.tv_sec,(int)start_time.tv_usec/10000);
> +        vments[5] = libxl__sprintf(gc, "%llu.%02d", (unsigned long long 
> int)(start_time.tv_sec),(int)start_time.tv_usec/10000);

These lines were overly long already but now they are really too long,
any chance you could wrap them a bit?

You could also consider a cast to uint64_t + PRIx64 which I think would
be shorter overall? Switching to GCSPRINTF might also help.

(seems to be a lot of duplicated code here, but that's not your
problem().

>  
>          localents = libxl__calloc(gc, 7, sizeof(char *));
>          localents[0] = "platform/acpi";
> @@ -373,7 +373,7 @@ int libxl__domain_build(libxl__gc *gc,
>          vments[i++] = "image/kernel";
>          vments[i++] = (char *) state->pv_kernel.path;
>          vments[i++] = "start_time";
> -        vments[i++] = libxl__sprintf(gc, "%lu.%02d", 
> start_time.tv_sec,(int)start_time.tv_usec/10000);
> +        vments[i++] = libxl__sprintf(gc, "%llu.%02d", (unsigned long long 
> int)(start_time.tv_sec),(int)start_time.tv_usec/10000);
>          if (state->pv_ramdisk.path) {
>              vments[i++] = "image/ramdisk";
>              vments[i++] = (char *) state->pv_ramdisk.path;
> @@ -846,7 +846,7 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void 
> *dcs_void,
>          vments[2] = "image/ostype";
>          vments[3] = "hvm";
>          vments[4] = "start_time";
> -        vments[5] = libxl__sprintf(gc, "%lu.%02d", 
> start_time.tv_sec,(int)start_time.tv_usec/10000);
> +        vments[5] = libxl__sprintf(gc, "%llu.%02d", (unsigned long long 
> int)(start_time.tv_sec),(int)start_time.tv_usec/10000);
>          break;
>      case LIBXL_DOMAIN_TYPE_PV:
>          vments = libxl__calloc(gc, 11, sizeof(char *));
> @@ -856,7 +856,7 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void 
> *dcs_void,
>          vments[i++] = "image/kernel";
>          vments[i++] = (char *) state->pv_kernel.path;
>          vments[i++] = "start_time";
> -        vments[i++] = libxl__sprintf(gc, "%lu.%02d", 
> start_time.tv_sec,(int)start_time.tv_usec/10000);
> +        vments[i++] = libxl__sprintf(gc, "%llu.%02d", (unsigned long long 
> int)(start_time.tv_sec),(int)start_time.tv_usec/10000);
>          if (state->pv_ramdisk.path) {
>              vments[i++] = "image/ramdisk";
>              vments[i++] = (char *) state->pv_ramdisk.path;



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.