modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/m68k-byte-addr.c (about)

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