Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/cfg/ControlFlowGraph.java')
-rw-r--r--codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/cfg/ControlFlowGraph.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/cfg/ControlFlowGraph.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/cfg/ControlFlowGraph.java
index c6d7003038e..059c83f5a22 100644
--- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/cfg/ControlFlowGraph.java
+++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/cfg/ControlFlowGraph.java
@@ -142,10 +142,14 @@ public class ControlFlowGraph implements IControlFlowGraph {
if (result.contains(start))
return;
result.add(start);
- IBasicBlock[] outgoingNodes = start.getOutgoingNodes();
- for (int i = 0; i < outgoingNodes.length; i++) {
- IBasicBlock b = outgoingNodes[i];
- getNodes(b, result);
+ for (IBasicBlock bb : start.getOutgoingNodes()) {
+ getNodes(bb, result);
+ }
+ if (start instanceof IConnectorNode) {
+ // special case where connect can have some incoming branch nodes not in the graph
+ for (IBasicBlock bb : start.getIncomingNodes()) {
+ getNodes(bb, result);
+ }
}
}
}

Back to the top