]> granicus.if.org Git - clang/commit
[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection...
authorTed Kremenek <kremenek@apple.com>
Mon, 29 Apr 2013 22:38:26 +0000 (22:38 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 29 Apr 2013 22:38:26 +0000 (22:38 +0000)
commit7651e53997e20f1e627ffce25ce613f79c48e3e3
treeea1a13ee44d721dc32902f20dacae559eb6aa4e2
parentb5142359abc50e151c18bde88fbabec98b65077c
[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection) PathDiagnosticPieces.

Much of this patch outside of PathDiagnostics.h are just minor
syntactic changes due to the return type for operator* and the like
changing for the iterator, so the real focus should be on
PathPieces itself.

This change is motivated so that we can do efficient insertion
and removal of individual pieces from within a PathPiece, just like
this was a kind of "IR" for static analyzer diagnostics.  We
currently implement path transformations by iterating over an
entire PathPiece and making a copy.  This isn't very natural for
some algorithms.

We use an ilist here instead of std::list because we want operations
to rip out/insert nodes in place, just like IR manipulation.  This
isn't being used yet, but opens the door for more powerful
transformation algorithms on diagnostic paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180741 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
lib/StaticAnalyzer/Core/BugReporter.cpp
lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
lib/StaticAnalyzer/Core/PathDiagnostic.cpp
lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp