[libvirt] [PATCH] virt-aa-helper: fix clang build

Ján Tomko jtomko at redhat.com
Wed May 11 10:51:17 UTC 2016


On Wed, May 11, 2016 at 01:30:00PM +0300, Roman Bogorodskiy wrote:
>   Pavel Hrdina wrote:
> 
> > On Wed, May 11, 2016 at 09:46:23AM +0300, Roman Bogorodskiy wrote:
> > >   Pavel Hrdina wrote:
> > > 
> > > > Clang complains about wrong argument type:
> > > > 
> > > > libvirt/src/security/virt-aa-helper.c:174:11: error: absolute value
> > > >       function 'abs' given an argument of type 'long' but has parameter
> > > >       of type 'int' which may cause truncation of value [-Werror,-Wabsolute-value]
> > > >     idx = abs(pos - orig);
> > > 
> > > Out of curiosity, why not use labs() here instead of casting?  
> > 
> > Just a random pick from those two possible fixes. It's stored into 'idx'
> > variable which is int and labs() returns long.  To use labs() the 'idx' would
> > have to be changed to 'long' or even 'size_t' since it's used only as 'size_t'.
> > 
> > If you think that it would be better to use the labs() and change the 'idx' to
> > 'size_t' I can do that.
> 
> Thinking about it, probably using labs() is not quite right, because
> pointer difference might be not long on all platforms?
> 
> I'm wondering if it'd make sense to make idx size_t and drop usage of
> abs() at all, i.e. "idx = (pos > orig) ? pos - orig : orig - pos"?
> 

I think using virStringReplace is the nicest solution. :)

Jan

> > Pavel
> 
> Roman Bogorodskiy
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list