ReachDefsOverwriteStandard.hpp

Go to the documentation of this file.
00001 
00012 #ifndef ReachDefsOverwriteStandard_hpp
00013 #define ReachDefsOverwriteStandard_hpp
00014 
00015 #include <iostream>
00016 #include <map>
00017 #include <set>
00018 
00019 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00020 #include <OpenAnalysis/IRInterface/IRHandles.hpp>
00021 #include <OpenAnalysis/ReachDefs/ReachDefsStandard.hpp>
00022 #include <OpenAnalysis/ReachDefsOverwrite/Interface.hpp>
00023 #include <OpenAnalysis/OABase/Annotation.hpp>
00024 #include <OpenAnalysis/Utils/GenOutputTool.hpp>
00025 
00026 namespace OA {
00027   namespace ReachDefsOverwrite {
00028 
00029     class ReachDefsOverwriteStandard : public ReachDefsOverwrite::Interface,
00030                                        public ReachDefs::ReachDefsStandard {
00031     public:
00032       ReachDefsOverwriteStandard(ProcHandle p) ;
00033 
00034       ~ReachDefsOverwriteStandard() {}
00035 
00040       OA_ptr<ReachDefsIterator> getOverwritingStmts(StmtHandle s);
00041 
00043       void insertOverwrittenBy(StmtHandle def, 
00044                                StmtHandle ovw);
00045 
00047       void output(IRHandlesIRInterface& pIR);
00048 
00049     private:
00050       // data members
00051       std::map<StmtHandle,OA_ptr<std::set<StmtHandle> > > mOverwrittenBy;
00052 
00053     };
00054 
00055   } 
00056 } 
00057 
00058 #endif
00059 

Generated on Sat Oct 31 05:21:25 2009 for OpenAnalysis by  doxygen 1.6.1