ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SteensgaardPtrAnal.h
Go to the documentation of this file.
1 #ifndef STEEENSGAARD_PTR_ANAL_H
2 #define STEEENSGAARD_PTR_ANAL_H
3 #include <PtrAnal.h>
4 #include <IteratorTmpl.h>
5 #include <steensgaard.h>
6 
7 
8 class SteensgaardPtrAnal : public PtrAnal, private ECRmap
9 {
10  private:
11  typedef ECRmap Impl;
12  virtual bool may_alias(const std::string& x, const std::string& y)
13  { return Impl::mayAlias(x, y); }
14  virtual Stmt x_eq_y(const std::string& x, const std::string& y)
15  { Impl:: x_eq_y(x, y); return 0; }
16  virtual Stmt x_eq_addr_y(const std::string& x, const std::string& y)
17  { Impl::x_eq_addr_y(x, y); return 0; }
18  virtual Stmt x_eq_deref_y(const std::string& x, const std::string& field,
19  const std::string& y)
20  { Impl::x_eq_deref_y(x, y); return 0; }
21  virtual Stmt x_eq_field_y(const std::string& x, const std::string& field,
22  const std::string& y)
23  { Impl::x_eq_y(x, y); return 0; }
24  virtual Stmt deref_x_eq_y(const std::string& x,
25  const std::list<std::string>& fields, const std::string& y)
26  { Impl::deref_x_eq_y(x,y); return 0; }
27  virtual Stmt field_x_eq_y(const std::string& x,
28  const std::list<std::string>& fields, const std::string& y)
29  { Impl::x_eq_y(x,y); return 0; }
30  virtual Stmt x_eq_op_y(OpType op, const std::string& x, const std::list<std::string>& y)
31  { Impl::x_eq_op_y(x,y); return 0; }
32  virtual Stmt allocate_x(const std::string& x)
33  { Impl::allocate(x); return 0; }
34  virtual Stmt funcdef_x(const std::string& x,
35  const std::list<std::string>& params,
36  const std::list<std::string>& output)
37  { Impl::function_def_x(x,params,output); return 0; }
38  virtual Stmt funccall_x ( const std::string& x, const std::list<std::string>& args,
39  const std::list<std::string>& result)
40  { Impl::function_call_p(x, result, args); return 0; }
41  virtual Stmt funcexit_x( const std::string& x) {return 0; }
42 
43  public:
44  void output(std::ostream& out) { Impl::output(out); }
45 };
46 #endif