On Sat, May 5, 2012 at 3:52 AM, Manuel López-Ibáñez <lopeziba...@gmail.com> wrote: > This patch fixes almost all false positives in PR43772. The case not fixed is: > > intmax_t i = (whatever); > if (INT_MAX < i && i <= LONG_MAX) > print ("i is in 'long' but not 'int' ran") > > where we warn if INT_MAX = LONG_MAX < INTMAX_MAX. Perhaps with the > macro location code, we could now tell that the constants INT_MAX and > LONG_MAX come from different macro expansions in system headers, and > avoid warning in this specific case, but that would be better done in > a follow-up patch. Dodji, is that possible? how could it be done? > > Bootstrapped and regression tested. > > OK?
OK. > > 2012-05-05 Manuel López-Ibáñez <m...@gcc.gnu.org> > > PR c/43772 > c-family/ > * c-common.c (warn_logical_operator): Do not warn if either side > is already true or false. > testsuite/ > * c-c++-common/pr43772.c: New.