scan-build: False positive "Assigned value is garbage or undefined" warning on open() result

Hello all,

CMake upstream here. After upgrading to clang 6 scan-build, we're
seeing a rather odd warning in our in-source libuv build. It's
complaining about "Assigned value is garbage or undefined" after
calling open() and comparing it to "== -1" rather than "< 0", but only
in this one particular call.

You can see the warning at
pe=1&buildid=5707465 . This warning also appears when building libuv on
its own.

I've opened a PR on libuv upstream (
l/2140 ) which fixes the warning, but what I don't understand is why
this is the only place where this appears - there are lots of other
places where open() is called and compared against -1, but they don't
trigger the warning. I also have not been able to come up with a
minimal reproducible example.

Anyone have any insight as to why this might be happening?

(I am not subscribed to this list, so please be sure to CC me in your