From: Ted Kremenek Date: Tue, 10 Feb 2009 23:56:07 +0000 (+0000) Subject: BugReporter: Use llvm::raw_string_stream instead of std::ostringstream. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=297308eda369de400e6ea7057dffeadd9f92e385;p=clang BugReporter: Use llvm::raw_string_stream instead of std::ostringstream. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64259 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp index 7a49112183..cf1d1b774d 100644 --- a/lib/Analysis/BugReporter.cpp +++ b/lib/Analysis/BugReporter.cpp @@ -24,7 +24,6 @@ #include "llvm/Support/raw_ostream.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/STLExtras.h" -#include using namespace clang; @@ -75,27 +74,26 @@ static inline Stmt* GetStmt(const ExplodedNode* N) { return isa(ProgP) ? GetLastStmt(N) : GetStmt(ProgP); } -static void ExecutionContinues(std::ostringstream& os, SourceManager& SMgr, - const Stmt* S) { - +static void ExecutionContinues(llvm::raw_string_ostream& os, + SourceManager& SMgr, + const Stmt* S) { if (!S) return; // Slow, but probably doesn't matter. - if (os.str().empty()) - os << ' '; + if (os.str().empty()) os << ' '; os << "Execution continues on line " - << SMgr.getInstantiationLineNumber(S->getLocStart()) << '.'; + << SMgr.getInstantiationLineNumber(S->getLocStart()) << '.'; } -static inline void ExecutionContinues(std::ostringstream& os, +static inline void ExecutionContinues(llvm::raw_string_ostream& os, SourceManager& SMgr, const ExplodedNode* N) { ExecutionContinues(os, SMgr, GetStmt(N->getLocation())); } -static inline void ExecutionContinues(std::ostringstream& os, +static inline void ExecutionContinues(llvm::raw_string_ostream& os, SourceManager& SMgr, const CFGBlock* B) { ExecutionContinues(os, SMgr, GetStmt(B)); @@ -603,7 +601,8 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, if (!S) continue; - std::ostringstream os; + std::string sbuf; + llvm::raw_string_ostream os(sbuf); os << "Control jumps to line " << SMgr.getInstantiationLineNumber(S->getLocStart()) << ".\n"; @@ -612,11 +611,10 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, break; } - case Stmt::SwitchStmtClass: { - + case Stmt::SwitchStmtClass: { // Figure out what case arm we took. - - std::ostringstream os; + std::string sbuf; + llvm::raw_string_ostream os(sbuf); if (Stmt* S = Dst->getLabel()) switch (S->getStmtClass()) { @@ -663,9 +661,8 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, continue; } - llvm::raw_os_ostream OS(os); - OS << V; - } + os << V; + } os << ":' at line " << SMgr.getInstantiationLineNumber(S->getLocStart()) << ".\n"; @@ -684,15 +681,16 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, case Stmt::BreakStmtClass: case Stmt::ContinueStmtClass: { - std::ostringstream os; + std::string sbuf; + llvm::raw_string_ostream os(sbuf); ExecutionContinues(os, SMgr, LastNode); PD.push_front(new PathDiagnosticPiece(L, os.str())); break; } case Stmt::ConditionalOperatorClass: { - - std::ostringstream os; + std::string sbuf; + llvm::raw_string_ostream os(sbuf); os << "'?' condition evaluates to "; if (*(Src->succ_begin()+1) == Dst) @@ -700,16 +698,15 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, else os << "true."; - PD.push_front(new PathDiagnosticPiece(L, os.str())); - + PD.push_front(new PathDiagnosticPiece(L, os.str())); break; } case Stmt::DoStmtClass: { if (*(Src->succ_begin()) == Dst) { - - std::ostringstream os; + std::string sbuf; + llvm::raw_string_ostream os(sbuf); os << "Loop condition is true. "; ExecutionContinues(os, SMgr, Dst); @@ -727,12 +724,12 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, case Stmt::ForStmtClass: { if (*(Src->succ_begin()+1) == Dst) { - - std::ostringstream os; + std::string sbuf; + llvm::raw_string_ostream os(sbuf); os << "Loop condition is false. "; ExecutionContinues(os, SMgr, Dst); - + PD.push_front(new PathDiagnosticPiece(L, os.str())); } else @@ -742,8 +739,7 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD, break; } - case Stmt::IfStmtClass: { - + case Stmt::IfStmtClass: { if (*(Src->succ_begin()+1) == Dst) PD.push_front(new PathDiagnosticPiece(L, "Taking false branch.")); else