[analyzer] Fix StreamErrorState hash bug
authorBalazs Benics <balazs.benics@sigmatechnology.se>
Wed, 15 Jun 2022 14:50:12 +0000 (16:50 +0200)
committerBalazs Benics <balazs.benics@sigmatechnology.se>
Wed, 15 Jun 2022 14:50:12 +0000 (16:50 +0200)
commit6c4f9998ae383d69e97a0d977585f2cb55ff92ed
tree6e6d8158326c35e2384c80a31068fb77ab185d07
parentf1b18a79b7f4c81ef67e83f5d1a02ded139df02d
[analyzer] Fix StreamErrorState hash bug

The `Profile` function was incorrectly implemented.
The `StreamErrorState` has an implicit `bool` conversion operator, which
will result in a different hash than faithfully hashing the raw value of
the enum.

I don't have a test for it, since it seems difficult to find one.
Even if we would have one, any change in the hashing algorithm would
have a chance of breaking it, so I don't think it would justify the
effort.

Depends on D127836, which uncovered this issue by marking the related
`Profile` function dead.

Reviewed By: martong, balazske

Differential Revision: https://reviews.llvm.org/D127839
clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp