[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Ping: [PATCH v2] dom0-build: fix build with clang5
On 17.07.2019 08:47, Jan Beulich wrote: > With non-empty CONFIG_DOM0_MEM clang5 produces > > dom0_build.c:344:24: error: use of logical '&&' with constant operand > [-Werror,-Wconstant-logical-operand] > if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) > ^ ~~~~~~~~~~~~~~~~~~ > dom0_build.c:344:24: note: use '&' for a bitwise operation > if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) > ^~ > & > dom0_build.c:344:24: note: remove constant to silence this warning > if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) > ~^~~~~~~~~~~~~~~~~~~~~ > 1 error generated. > > Obviously neither of the two suggestions are an option here. Oddly > enough swapping the operands of the && helps, while e.g. casting or > parenthesizing doesn't. Another workable variant looks to be the use of > !! on the constant. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > --- > v2: Also adjust the Arm incarnation of the same construct. > --- > I'm open to going the !! or yet some different route (but not really the > suggested strlen() one). No matter which one we choose, I'm afraid it is > going to remain guesswork what newer (and future) versions of clang will > choke on. I guess the disagreement on how to exactly address the issue has stalled this. But I think we should rather have _some_ (e.g. this) solution in the repo, than continue to ship versions which don't build. People wanting to beautify the code further could then submit incremental patches. Jan > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -2125,7 +2125,7 @@ int __init construct_dom0(struct domain > > printk("*** LOADING DOMAIN 0 ***\n"); > > - if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) > + if ( CONFIG_DOM0_MEM[0] && !dom0_mem_set ) > parse_dom0_mem(CONFIG_DOM0_MEM); > > if ( dom0_mem <= 0 ) > --- a/xen/arch/x86/dom0_build.c > +++ b/xen/arch/x86/dom0_build.c > @@ -341,7 +341,7 @@ unsigned long __init dom0_compute_nr_pag > unsigned long avail = 0, nr_pages, min_pages, max_pages; > bool need_paging; > > - if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) > + if ( CONFIG_DOM0_MEM[0] && !dom0_mem_set ) > parse_dom0_mem(CONFIG_DOM0_MEM); > > for_each_node_mask ( node, dom0_nodes ) > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |