#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