On Fri, Sep 30, 2016 at 1:07 AM, Bernd Edlinger wrote: > On 09/29/16 22:38, Jason Merrill wrote: >> On Thu, Sep 29, 2016 at 3:58 PM, Bernd Edlinger >> wrote: >>> Unfortunately, without that exception there is a false positive: >>> >>> In file included from ../../gcc-trunk/gcc/ada/gcc-interface/decl.c:30:0: >>> ../../gcc-trunk/gcc/ada/gcc-interface/decl.c: In function 'int >>> adjust_packed(tree, tree, int)': >>> ../../gcc-trunk/gcc/tree.h:1874:22: error: << on signed integer in >>> boolean context [-Werror=int-in-bool-context] >>> ? ((unsigned)1) << ((NODE)->type_common.align - 1) : 0) >>> ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> Ah, this issue again: the shift isn't in boolean context, it's in >> integer context. I think we want to be a lot more conservative about >> these warnings in the arms of a COND_EXPR. In fact, I think the >> entire >> >> /* Distribute the conversion into the arms of a COND_EXPR. */ >> >> section is wrong now that we're doing delayed folding. > > Could you take care of this ? Done thus: