#define __X(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(0,0))
typedef
struct Durak_Card { signed char suit, rank; } Durak_Card;
typedef
Durak_Card Durak_Cards[37];
static Durak_Cards Durak_hand[2];
static Durak_Card Durak_desk[13];
static signed char Durak_deskN, Durak_trump, Durak_badSuit;
static unsigned char Durak_CanAddOnDesk (signed char rank);
static void Durak_CpuMoves (void) {
signed char i, j, l, min;
signed int z;
signed char _for__14;
if (Durak_deskN != 0) {
if (Durak_desk[__X(Durak_deskN, 13)].suit == Durak_trump && Durak_desk[__X(i - 1, 13)].suit != Durak_trump) {
Durak_badSuit = Durak_desk[__X(i - 1, 13)].suit;
}
}
while (l <= _for__14) {
for (;;) {
i = l;
if (Durak_CanAddOnDesk(Durak_hand[1][__X(l, 37)].rank)) {
z = Durak_hand[1][__X(i, 37)].rank * 10 + (signed char)(Durak_hand[1][__X(i, 37)].suit == Durak_trump) * 111;
}
}
}
}
sdcc Durak.c -mz80
Warning: Non-connected liverange found and extended to connected component of the CFG:iTemp13. Please contact sdcc authors with source code to reproduce.
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8 3.4.2 #9149 (Dec 29 2014) (MINGW32)
Last edit: Oleg N. Cher 2015-03-16
Same root cause as [#3046] and finally fixed with revision [r11667]
Related
Bugs:
#3046