[cfe-commits] r151775 - /cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
David Blaikie
dblaikie at gmail.com
Wed Feb 29 16:18:37 PST 2012
On Wed, Feb 29, 2012 at 4:05 PM, Ted Kremenek <kremenek at apple.com> wrote:
> Author: kremenek
> Date: Wed Feb 29 18:05:06 2012
> New Revision: 151775
>
> URL: http://llvm.org/viewvc/llvm-project?rev=151775&view=rev
> Log:
> Change if...else if...else if... to a switch.
For what it's worth - given the way if's boolean check on
initialization works, I kind of like the original expression (& hey,
it hapens to be shorter). Is there a particular reason for the
refactor? I wouldn't've thought it was faster...
(of course you own/work with this code & I don't, so my sense of style
isn't all too important - just curious)
- David
>
> Modified:
> cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=151775&r1=151774&r2=151775&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp Wed Feb 29 18:05:06 2012
> @@ -127,26 +127,33 @@
> IntrusiveRefCntPtr<PathDiagnosticPiece> piece(pieces.front());
> pieces.pop_front();
>
> - if (PathDiagnosticCallPiece *call =
> - dyn_cast<PathDiagnosticCallPiece>(piece)) {
> - // Recursively clean out the subclass. Keep this call around if
> - // it contains any informative diagnostics.
> - if (!RemoveUneededCalls(call->path))
> - continue;
> - containsSomethingInteresting = true;
> - }
> - else if (PathDiagnosticMacroPiece *macro =
> - dyn_cast<PathDiagnosticMacroPiece>(piece)) {
> - if (!RemoveUneededCalls(macro->subPieces))
> - continue;
> - containsSomethingInteresting = true;
> - }
> - else if (PathDiagnosticEventPiece *event =
> - dyn_cast<PathDiagnosticEventPiece>(piece)) {
> - // We never throw away an event, but we do throw it away wholesale
> - // as part of a path if we throw the entire path away.
> - if (!event->isPrunable())
> + switch (piece->getKind()) {
> + case PathDiagnosticPiece::Call: {
> + PathDiagnosticCallPiece *call = cast<PathDiagnosticCallPiece>(piece);
> + // Recursively clean out the subclass. Keep this call around if
> + // it contains any informative diagnostics.
> + if (!RemoveUneededCalls(call->path))
> + continue;
> + containsSomethingInteresting = true;
> + break;
> + }
> + case PathDiagnosticPiece::Macro: {
> + PathDiagnosticMacroPiece *macro = cast<PathDiagnosticMacroPiece>(piece);
> + if (!RemoveUneededCalls(macro->subPieces))
> + continue;
> containsSomethingInteresting = true;
> + break;
> + }
> + case PathDiagnosticPiece::Event: {
> + PathDiagnosticEventPiece *event = cast<PathDiagnosticEventPiece>(piece);
> + // We never throw away an event, but we do throw it away wholesale
> + // as part of a path if we throw the entire path away.
> + if (!event->isPrunable())
> + containsSomethingInteresting = true;
> + break;
> + }
> + case PathDiagnosticPiece::ControlFlow:
> + break;
> }
>
> pieces.push_back(piece);
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list