File: pdbRoutine.inl
/*************************************************************************/
/* DUCTAPE Version 2.0 */
/* Copyright (C) 2001 */
/* Forschungszentrum Juelich, Zentralinstitut fuer Angewandte Mathematik */
/*************************************************************************/
// class pdbStmt inlines
inline pdbStmt::pdbStmt(int id) : i(id), knd(ST_NA), nxt(0), dwn(0), ex(0) {}
inline void pdbStmt::kind(stmt_t kind) { knd = kind; }
inline void pdbStmt::stmtBegin(const pdbLoc& loc) { bg = loc; }
inline void pdbStmt::stmtEnd(const pdbLoc& loc) { ed = loc; }
inline void pdbStmt::nextStmt(const pdbStmt* s) { nxt = s; }
inline void pdbStmt::downStmt(const pdbStmt* s) { dwn = s; }
inline void pdbStmt::extraStmt(const pdbStmt* s) { ex = s; }
inline int pdbStmt::id() const { return i; }
inline pdbStmt::stmt_t pdbStmt::kind() const { return knd; }
inline const pdbLoc& pdbStmt::stmtBegin() const { return bg; }
inline const pdbLoc& pdbStmt::stmtEnd() const { return ed; }
inline const pdbStmt* pdbStmt::nextStmt() const { return nxt; }
inline const pdbStmt* pdbStmt::downStmt() const { return dwn; }
inline const pdbStmt* pdbStmt::extraStmt() const { return ex; }
// class pdbCallee inlines
inline pdbCallee::pdbCallee ()
: virt(pdbItem::VI_NO), rptr(0) {}
inline pdbCallee::pdbCallee (const pdbRoutine *call, pdbItem::virt_t v,
pdbFile *file, int line, int col)
: pdbLoc(file, line, col), virt(v), rptr(call) {}
inline pdbItem::virt_t pdbCallee::virtuality() const { return virt; }
inline const pdbRoutine *pdbCallee::call() const { return rptr; }
inline bool pdbCallee::isVirtual() const { return virt == pdbItem::VI_VIRT; }
inline void pdbCallee::virtuality(pdbItem::virt_t v) { virt = v; }
inline void pdbCallee::call(const pdbRoutine* call) { rptr = call; }
// class pdbRoutine inlines
inline pdbRoutine::pdbRoutine(int id)
: pdbTemplateItem(id),
sig(0), bdy(0), knd(RO_NA), rspec(RS_NA), link(LK_NA), numc(0) {}
inline pdbRoutine::pdbRoutine(const string& name, int id)
: pdbTemplateItem(name, id),
sig(0), bdy(0), knd(RO_NA), rspec(RS_NA), link(LK_NA), numc(0) {}
inline const char *pdbRoutine::desc() const { return "routine"; }
inline const pdbType *pdbRoutine::signature() const { return sig; }
inline pdbItem::routine_t pdbRoutine::kind() const { return knd; }
inline pdbItem::rspec_t pdbRoutine::specialKind() const { return rspec; }
inline pdbRoutine::callvec& pdbRoutine::callees() { return calls; }
inline const pdbRoutine::callvec& pdbRoutine::callees() const { return calls; }
inline int pdbRoutine::numCalled() const { return numc; }
inline pdbItem::link_t pdbRoutine::linkage() const { return link; }
inline const pdbLoc& pdbRoutine::firstExecStmtLocation() const {
return festmt;
}
inline const pdbRoutine::locvec& pdbRoutine::returnLocations() const {
return retrns;
}
inline const pdbStmt* pdbRoutine::body() const { return bdy; }
inline const pdbRoutine::stmtvec& pdbRoutine::statements() const {
return stmts;
}
inline void pdbRoutine::signature(const pdbType *sigtype) { sig = sigtype; }
inline void pdbRoutine::kind(routine_t kind) { knd = kind; }
inline void pdbRoutine::specialKind(rspec_t rs) { rspec = rs; }
inline void pdbRoutine::addCallee(const pdbRoutine *callee, pdbItem::virt_t v,
pdbFile *file, int line, int col) {
calls.push_back(new pdbCallee(callee, v, file, line, col));
callee->incrCalled();
}
inline void pdbRoutine::linkage(link_t l) { link = l; }
inline void pdbRoutine::firstExecStmtLocation(const pdbLoc& l) {
festmt = l;
}
inline void pdbRoutine::addReturnLocation(const pdbFile *file, int line,
int col) {
retrns.push_back(new pdbLoc(file, line, col));
}
inline void pdbRoutine::body(const pdbStmt* b) { bdy = b; }
Back to Index
Key to Colors and Styles