forked from OSchip/llvm-project
parent
ad4a7e4a69
commit
976d1e0ea8
|
@ -1,67 +0,0 @@
|
|||
//=-- AnnotatedPath.h - An annotated list of ExplodedNodes -*- C++ -*-------==//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file defines AnnotatedPath, which represents a collection of
|
||||
// annotated ExplodedNodes.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_CLANG_ANALYSIS_ANNOTPATH
|
||||
#define LLVM_CLANG_ANALYSIS_ANNOTPATH
|
||||
|
||||
#include "clang/Analysis/PathSensitive/ExplodedGraph.h"
|
||||
#include <string>
|
||||
#include <list>
|
||||
|
||||
namespace clang {
|
||||
|
||||
class Expr;
|
||||
|
||||
template <typename STATE>
|
||||
class AnnotatedNode {
|
||||
ExplodedNode<STATE> *Node;
|
||||
std::string annotation;
|
||||
Expr* E;
|
||||
|
||||
public:
|
||||
AnnotatedNode(ExplodedNode<STATE>* N, const std::string& annot,
|
||||
Expr* e = NULL)
|
||||
: Node(N), annotation(annot), E(e) {}
|
||||
|
||||
ExplodedNode<STATE>* getNode() const { return Node; }
|
||||
|
||||
const std::string& getString() const { return annotation; }
|
||||
|
||||
Expr* getExpr() const { return E; }
|
||||
};
|
||||
|
||||
|
||||
template <typename STATE>
|
||||
class AnnotatedPath {
|
||||
typedef std::list<AnnotatedNode<STATE> > impl;
|
||||
impl path;
|
||||
public:
|
||||
AnnotatedPath() {}
|
||||
|
||||
void push_back(ExplodedNode<STATE>* N, const std::string& s, Expr* E = NULL) {
|
||||
path.push_back(AnnotatedNode<STATE>(N, s, E));
|
||||
}
|
||||
|
||||
typedef typename impl::iterator iterator;
|
||||
|
||||
iterator begin() { return path.begin(); }
|
||||
iterator end() { return path.end(); }
|
||||
|
||||
AnnotatedNode<STATE>& back() { return path.back(); }
|
||||
const AnnotatedNode<STATE>& back() const { return path.back(); }
|
||||
};
|
||||
|
||||
} // end clang namespace
|
||||
|
||||
#endif
|
|
@ -16,7 +16,6 @@
|
|||
#include "clang/Analysis/PathSensitive/ExplodedGraph.h"
|
||||
#include "clang/Analysis/PathSensitive/GRSimpleAPICheck.h"
|
||||
#include "clang/Analysis/PathSensitive/ValueState.h"
|
||||
#include "clang/Analysis/PathSensitive/AnnotatedPath.h"
|
||||
#include "clang/Analysis/PathDiagnostic.h"
|
||||
#include "clang/AST/Expr.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
|
|
Loading…
Reference in New Issue