On 09/05/16 21:23, Denis Campredon wrote: > Hi, > Your patch does not emit warning for the following case: > void f(int j){bool i = j ?: 3;} > > But for emit one for > void f(){bool i = 4 ?: 2;} > Regards >
Yes, good point. It is probably not completely unrealistic that the middle expression may be accidentally left out? The first example is a bit too complicated, because the warning does only work with integer constants in the moment, but "j ?: 3" is expanded as "j ? j : 3", while "4 ?: 2" is expanded as "4 ? 4 : 2" which matches the check. I'm not sure if detecting the special case j ?: 3 is worth the effort, but it may be doable. Should I try that as a follow-up patch? Thanks Bernd.