/* This testcase triggered an attempt to reload a byte value into an address register. */ extern volatile unsigned char x[]; #define DECLARE(I) orig##I, inc##I #define READ(I) orig##I = x[I] #define INC(I) inc##I = orig##I + 1 #define WRITE1(I) x[I] = orig##I #define WRITE2(I) x[I] = inc##I #define REPEAT(X) X(0), X(1), X(2), X(3), X(4), X(5), X(6), X(7), X(8) void foo (void) { unsigned char REPEAT (DECLARE); REPEAT (READ); REPEAT (INC); REPEAT (WRITE1); REPEAT (WRITE2); }