[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
This commit is contained in:
Balazs Benics 2022-06-15 16:50:12 +02:00
parent f1b18a79b7
commit 6c4f9998ae
1 changed files with 1 additions and 1 deletions
clang/lib/StaticAnalyzer/Checkers

View File

@ -146,7 +146,7 @@ struct StreamState {
void Profile(llvm::FoldingSetNodeID &ID) const {
ID.AddPointer(LastOperation);
ID.AddInteger(State);
ID.AddInteger(ErrorState);
ErrorState.Profile(ID);
ID.AddBoolean(FilePositionIndeterminate);
}
};