/* PR c/106981 */ int main () { int a[0x101]; unsigned int b = 0x100; if ((unsigned char) b || (unsigned short) b != 0x100) return 0; a[0] = 0; a[0x100] = 42; #pragma omp atomic update a[(unsigned char) b] = a[(unsigned short) b] + a[(unsigned char) b]; #pragma omp atomic update a[(unsigned char) b] = a[(unsigned char) b] + a[(unsigned short) b]; if (a[0] != 84 || a[0x100] != 42) __builtin_abort (); return 0; }