1 /* PR 21171. Ivopts should not rewrite references to volatile memory. */ 2 /* { dg-do compile } */ 3 /* { dg-options "-O1 -fdump-tree-optimized" } */ 4 5 typedef unsigned int u_int32_t; 6 typedef unsigned char u_int8_t; 7 8 #define AIC_VECTORS 32 9 10 typedef volatile struct AT91RM9200_regs { 11 u_int32_t SVR[AIC_VECTORS]; 12 } AT91RM9200_regs_t; 13 14 #define CPUReg ((AT91RM9200_regs_t*)0xFFF00000) 15 16 extern const u_int32_t __IntTable[AIC_VECTORS]; 17 main()18int main() 19 { 20 int c; 21 22 for (c = 0; c < AIC_VECTORS; c++) 23 CPUReg->SVR[c] = __IntTable[c]; 24 25 return 0; 26 } 27 28 /* { dg-final { scan-tree-dump-times "SVR" 1 "optimized"} } */ 29