1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fdump-rtl-reload-details" } */ 3 4 #define R1(X, Y) X (Y##0) X (Y##1) X (Y##2) X (Y##3) \ 5 X (Y##4) X (Y##5) X (Y##6) X (Y##7) 6 #define R2(X) R1 (X, 0) R1 (X, 1) R1 (X, 2) R1 (X, 3) 7 8 #define DEFINE(N) extern int x##N; 9 R2 (DEFINE) 10 11 void b1 (int *); 12 13 void foo(int n)14foo (int n) 15 { 16 for (int i = 0; i < n; ++i) 17 { 18 #define CALL(N) b1 (&x##N); 19 R2 (CALL); 20 R2 (CALL); 21 } 22 #define INC(N) x##N += 1; 23 R2 (INC); 24 } 25 26 /* { dg-final { scan-rtl-dump-not "DI 32 v0" "reload" } } */ 27