projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
included "SDCCset.h", added declaration of setParseWithComma()
[fw/sdcc]
/
src
/
SDCCcflow.c
diff --git
a/src/SDCCcflow.c
b/src/SDCCcflow.c
index 4db709480e6cbae2c7c2653555a5e1bde0a9d2c7..e3befba85b65249664df21bdf03121b9aa48e650 100644
(file)
--- a/
src/SDCCcflow.c
+++ b/
src/SDCCcflow.c
@@
-120,7
+120,6
@@
eBBSuccessors (eBBlock ** ebbs, int count)
if (ebbs[i]->ech)
{
if (ebbs[i]->ech)
{
-
if (ebbs[i]->ech->op != GOTO &&
ebbs[i]->ech->op != RETURN &&
ebbs[i]->ech->op != JUMPTABLE)
if (ebbs[i]->ech->op != GOTO &&
ebbs[i]->ech->op != RETURN &&
ebbs[i]->ech->op != JUMPTABLE)
@@
-132,6
+131,12
@@
eBBSuccessors (eBBlock ** ebbs, int count)
addSuccessor (ebbs[i], ebbs[j]); /* add it */
}
addSuccessor (ebbs[i], ebbs[j]); /* add it */
}
+ else
+ {
+ if (i && ebbs[i-1]->ech && ebbs[i-1]->ech->op==IFX) {
+ ebbs[i]->isConditionalExitFrom=ebbs[i-1];
+ }
+ }
} /* no instructions in the block */
/* could happen for dummy blocks */
else
} /* no instructions in the block */
/* could happen for dummy blocks */
else
@@
-161,7
+166,7
@@
eBBSuccessors (eBBlock ** ebbs, int count)
switch (ic->op)
{
case GOTO: /* goto has edge to label */
switch (ic->op)
{
case GOTO: /* goto has edge to label */
- succ = eBBWithEntryLabel (ebbs, ic->
argLabel.
label, count);
+ succ = eBBWithEntryLabel (ebbs, ic->label, count);
break;
case IFX: /* conditional jump */
break;
case IFX: /* conditional jump */