Re: [PATCH v2 2/2] fix: give a type to bad cond expr with known condition

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

 



On Fri, Aug 4, 2017 at 12:06 PM, Luc Van Oostenryck
<luc.vanoostenryck@xxxxxxxxx> wrote:
> Conditional expressions whose second & third operands
> have non-compatible types are not conform to the C standard
> and sparse emit a warning for them and return the expression
> as being erroneous. In consequence, such expressions are not
> given a type. This, in turn, makes that some further processing
> cannot be done (correctly).
>
> It seems that neither GCC nor clang emit a warning when
> there is a type mismatch but the condition is a constant.
>
> In the case we're interested here (the slow compilation of a file)
> the operation that cannot be done is the expansion its operands.
> This, in turn and among other things, makes that builtins like
> __builtin_constant_p() are not evaluated with disatrous consequence
> for the amount of work done in the next phases.
>
> Fix this by giving to conditional expressions with constant
> condition the same type as the operand selected by the conditional
> (but keeping the warning) as GCC & clang seems to do.

Looks good to me.

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux