forked from OSchip/llvm-project
[Analyzer][solver][NFC] Add explanatory comments to trivial eq classes
Differential Revision: https://reviews.llvm.org/D106370
This commit is contained in:
parent
21401a7262
commit
732a8a9dfb
clang/lib/StaticAnalyzer/Core
|
@ -559,8 +559,20 @@ public:
|
|||
|
||||
/// Return a set of class members for the given state.
|
||||
LLVM_NODISCARD inline SymbolSet getClassMembers(ProgramStateRef State) const;
|
||||
|
||||
/// Return true if the current class is trivial in the given state.
|
||||
/// A class is trivial if and only if there is not any member relations stored
|
||||
/// to it in State/ClassMembers.
|
||||
/// An equivalence class with one member might seem as it does not hold any
|
||||
/// meaningful information, i.e. that is a tautology. However, during the
|
||||
/// removal of dead symbols we do not remove classes with one member for
|
||||
/// resource and performance reasons. Consequently, a class with one member is
|
||||
/// not necessarily trivial. It could happen that we have a class with two
|
||||
/// members and then during the removal of dead symbols we remove one of its
|
||||
/// members. In this case, the class is still non-trivial (it still has the
|
||||
/// mappings in ClassMembers), even though it has only one member.
|
||||
LLVM_NODISCARD inline bool isTrivial(ProgramStateRef State) const;
|
||||
|
||||
/// Return true if the current class is trivial and its only member is dead.
|
||||
LLVM_NODISCARD inline bool isTriviallyDead(ProgramStateRef State,
|
||||
SymbolReaper &Reaper) const;
|
||||
|
|
Loading…
Reference in New Issue