The kernel recently redefined min/max() and that triggered some issues
in Smatch.  So far I've noticed three bugs:

1) The kernel stopped building.  That should be fixed.  I have built all
   the files which failed for me last night, but I haven't done a
   complete rebuild yet.  I pushed my changes with very little testing
   because I figured that it can't be worse than not building at all.
   Hopefully, it's working.  I'm travelling this weekend so I might not
   be able to look at this again until Tuesday.

2) I get some weird precedence issues where Smatch is taking code like:
   "(a == b) == (c == d)" and changing it to "*a == b == *c == d".
   I don't even know how that's happening and how does Smatch think
   we're dereferencing integers?  I'm still working on this.

3) Smatch is not tracking comparisons between variables correctly now.
   I have not investigated what's happening with this.

4) Smatch thinks functions are dereferencing parameters when they are
   not.  Code like "foo = min(param ? param->bar : xxx, yyy);"  The
   "param" variable isn't dereferenced without checking.

Let me know if you run into any build issues or if you notice any other
bugs.

regards,
dan carpenter

Reply via email to