From: Ted Kremenek Date: Mon, 29 Apr 2013 22:38:22 +0000 (+0000) Subject: [analyzer] Remove comparePath's dependency on subscript operator. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b5142359abc50e151c18bde88fbabec98b65077c;p=clang [analyzer] Remove comparePath's dependency on subscript operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180740 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/PathDiagnostic.cpp b/lib/StaticAnalyzer/Core/PathDiagnostic.cpp index a30d871d8f..03513106ec 100644 --- a/lib/StaticAnalyzer/Core/PathDiagnostic.cpp +++ b/lib/StaticAnalyzer/Core/PathDiagnostic.cpp @@ -297,11 +297,16 @@ static Optional comparePiece(const PathDiagnosticPiece &X, static Optional comparePath(const PathPieces &X, const PathPieces &Y) { if (X.size() != Y.size()) return X.size() < Y.size(); - for (unsigned i = 0, n = X.size(); i != n; ++i) { - Optional b = comparePiece(*X[i], *Y[i]); + + PathPieces::const_iterator X_I = X.begin(), X_end = X.end(); + PathPieces::const_iterator Y_I = Y.begin(), Y_end = Y.end(); + + for ( ; X_I != X_end && Y_I != Y_end; ++X_I, ++Y_I) { + Optional b = comparePiece(**X_I, **Y_I); if (b.hasValue()) return b.getValue(); } + return None; }