[analyzer] Make symbol_iterator iterate over SVal's symbolic base.
If a memory region (or an SVal that represents a pointer to that memory region) is a (direct or indirect, not necessarily proper) sub-region of a SymbolicRegion then it is said to have a symbolic base. For now SVal::symbol_iterator explores the symbol within a symbolic region only when the SVal represents a pointer to the symbolic region itself, not to any of its sub-regions. This behavior is not indended by any user of symbol_iterator; all users who cared about such behavior were expecting the iterator to descend into the symbolic base of an arbitrary region, find the parent symbol of the symbolic base region, and iterate over that symbol. Lack of such behavior resulted in bugs demonstarted by the test cases. Hence the decision to change the API to behave more intuitively. Differential Revision: https://reviews.llvm.org/D44347 llvm-svn: 328247
Loading
Please sign in to comment