cz::muni::stanse::threadchecker::CFGTransit Class Reference

Algorithm description: if(node is marked as visited) -> stop process and ask for another from queue if(node has only one predecessor) { -> process node's element and mark it as visited } else { if(all node's predecessors are visited) { -> try to join all nodes with same CFGNode -> process actual node's element and mark it as visited } else { if(predecessor's is part of a cycle. More...

Collaboration diagram for cz::muni::stanse::threadchecker::CFGTransit:
[legend]

List of all members.

Static Public Member Functions

static Function analyseCFG (CFGHandle cfg, final CheckerProgressMonitor mon) throws CheckerException
static void chooseAction (final CFGNode node, final Function function, final CheckerProgressMonitor mon) throws CheckerException

Static Package Functions

 [static initializer]


Detailed Description

Algorithm description: if(node is marked as visited) -> stop process and ask for another from queue if(node has only one predecessor) { -> process node's element and mark it as visited } else { if(all node's predecessors are visited) { -> try to join all nodes with same CFGNode -> process actual node's element and mark it as visited } else { if(predecessor's is part of a cycle.

Singleton class executes algorithm which traverse CFG the way, where every cycles (while, for etc) are traversed only once.

Note:
(predecessor's ID is higher then actual node)) { -> process all actual node's successors which compose cycles and -> add them to queue } else { -> try to join nodes with same CFGNode and add actual node to -> queue's bottom } } }
Author:
Jan Kučera

Member Function Documentation

cz::muni::stanse::threadchecker::CFGTransit::[static initializer] (  )  [inline, static, package]

static Function cz::muni::stanse::threadchecker::CFGTransit::analyseCFG ( CFGHandle  cfg,
final CheckerProgressMonitor  mon 
) throws CheckerException [inline, static]

Traverse CFG graph with reducing same outputs from different branches and return instance of Function which holds every possible state of function.

Parameters:
cfg CFG representing C function
Returns:
Function generated from traversing CFG graph

static void cz::muni::stanse::threadchecker::CFGTransit::chooseAction ( final CFGNode  node,
final Function  function,
final CheckerProgressMonitor  mon 
) throws CheckerException [inline, static]

Method choose proper code analysis from user's settings. If no pattern matches, tries to analyse as normal functionCall.

Parameters:
node CFGNode contains Element describing source code
function Function with actual state of analysis


The documentation for this class was generated from the following file:

Generated on Thu Jan 13 16:24:10 2011 for Stanse by  doxygen 1.5.6