================
@@ -66,13 +66,21 @@ void DanglingPtrDeref::checkPostCall(const CallEvent &Call,
}
}
+static std::string getRegionName(const MemRegion *Reg) {
+ // FIXME: Once the checker supports heap allocation, more region kinds
+ // should be handled to produce the correct descriptive name.
+ if (const std::string RegName = Reg->getDescriptiveName(); !RegName.empty())
+ return RegName;
+ return "the region";
+}
+
void DanglingPtrDeref::reportUseAfterScope(const MemRegion *Region,
ExplodedNode *N,
CheckerContext &C) const {
auto BR = std::make_unique<PathSensitiveBugReport>(
BugMsg,
- (llvm::Twine("Use of '") + Region->getString() +
- "' after its lifetime ended."),
+ (llvm::Twine("Use of ") + getRegionName(Region) +
+ " after its lifetime ended."),
----------------
steakhal wrote:
This is a great change. I was hoping for a loong time that we would get rid of
`MemRegion::getString` - which should be a debug only stringification and
should never surface to the users.
Well, here we are, so I'm delighted.
No actions expected.
https://github.com/llvm/llvm-project/pull/211552
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits