if (!sym)
return;
interestingSymbols.insert(sym);
+
+ if (const SymbolMetadata *meta = dyn_cast<SymbolMetadata>(sym))
+ interestingRegions.insert(meta->getRegion());
}
void BugReport::markInteresting(const MemRegion *R) {
return;
R = R->getBaseRegion();
interestingRegions.insert(R);
-
+
if (const SymbolicRegion *SR = dyn_cast<SymbolicRegion>(R))
interestingSymbols.insert(SR->getSymbol());
}
bool BugReport::isInteresting(SymbolRef sym) const {
if (!sym)
return false;
+ // We don't currently consider metadata symbols to be interesting
+ // even if we know their region is interesting. Is that correct behavior?
return interestingSymbols.count(sym);
}