projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* src/SDCClrange.c (computeClash): fixed bug #971834
[fw/sdcc]
/
src
/
SDCClrange.c
diff --git
a/src/SDCClrange.c
b/src/SDCClrange.c
index 1c2c8493d53d05ad8217944d321e8fbd1d788579..fe7eadc6c14524451ecc6fbd8f03c7a1d9791ad6 100644
(file)
--- a/
src/SDCClrange.c
+++ b/
src/SDCClrange.c
@@
-535,7
+535,9
@@
computeClash (eBBlock ** ebbs, int count)
IS_ITEMP(IC_RESULT(ic)) &&
(IS_ITEMP(IC_LEFT(ic)) || IS_ITEMP(IC_RIGHT(ic))))
{
IS_ITEMP(IC_RESULT(ic)) &&
(IS_ITEMP(IC_LEFT(ic)) || IS_ITEMP(IC_RIGHT(ic))))
{
- if (OP_SYMBOL(IC_RESULT(ic))->key == key1)
+ if (OP_SYMBOL(IC_RESULT(ic))->key == key1
+ && sym1->liveFrom == ic->seq
+ && sym2->liveTo == ic->seq)
{
if (IS_SYMOP(IC_LEFT(ic)))
if (OP_SYMBOL(IC_LEFT(ic))->key == key2)
{
if (IS_SYMOP(IC_LEFT(ic)))
if (OP_SYMBOL(IC_LEFT(ic))->key == key2)
@@
-545,7
+547,9
@@
computeClash (eBBlock ** ebbs, int count)
continue;
}
continue;
}
- if (OP_SYMBOL(IC_RESULT(ic))->key == key2)
+ if (OP_SYMBOL(IC_RESULT(ic))->key == key2
+ && sym2->liveFrom == ic->seq
+ && sym1->liveTo == ic->seq)
{
if (IS_SYMOP(IC_LEFT(ic)))
if (OP_SYMBOL(IC_LEFT(ic))->key == key1)
{
if (IS_SYMOP(IC_LEFT(ic)))
if (OP_SYMBOL(IC_LEFT(ic))->key == key1)