forked from OSchip/llvm-project
[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:
parent
f1b18a79b7
commit
6c4f9998ae
clang/lib/StaticAnalyzer/Checkers
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue