boolean (StatEdge edge) { Statement stat = edge.getDestination(); for (StatEdge ed : stat.getAllPredecessorEdges()) { if (ed != edge) { if (ed.getType() == EdgeType.REGULAR) { Statement source = ed.getSource(); if (source.type == StatementType.BASIC_BLOCK || (source.type == StatementType.IF && ((IfStatement)source).iftype == IfStatement.IFTYPE_IF) || (source.type == StatementType.DO && ((DoStatement)source).getLoopType() != LoopType.DO)) { return false; } } else { return false; } } } return true; }