[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] dom0-build: fix build with clang5
On 29.07.2019 12:05, Julien Grall wrote: > Hi, > > On 7/17/19 7:47 AM, 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 quite like the strlen one, however looking around online this may not > solve the problem. AFAIK, Clang is not happy because the constant is not > a boolean. I don't think it's as simple as "not a boolean", but I also haven't played with it more than I had to in order to find possible workarounds. As to the strlen() approach - I've expressed my dislike before. > So !! or != 0 should work here. Well, with perhaps as much of a chance of breaking again as any other of the possible solutions, unless they recognize and address the oddity. Andrew - would you be willing to ack a v3 using !! instead of re-ordering the && operands (seeing that you didn't ack v2 yet, and perhaps you're also not meaning to)? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |