[analyzer] Fix a memory error in r261935 caught by the Windows bots.
It was using a temporary StringRef after its underlying storage was freed.
llvm-svn: 261944
diff --git a/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
index 596ad70..263da20 100644
--- a/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
@@ -162,9 +162,9 @@
StringRef Desc = StringRef();
auto *IvarRegion = dyn_cast_or_null<ObjCIvarRegion>(PriorSubRegion);
+ std::string Buf;
+ llvm::raw_string_ostream OS(Buf);
if (IvarRegion) {
- std::string Buf;
- llvm::raw_string_ostream OS(Buf);
OS << "use of instance variable '" << *IvarRegion->getDecl() <<
"' after the instance has been freed with call to [super dealloc]";
Desc = OS.str();