#include #include typedef struct { char i1; short i2; long i4; long long i8; char str[2][10]; } a_t; const __as a_t A = { 12, 345, 678910, 1234567891011ll, { "xxx..xxx", "yyy..yyy" } }; const __as volatile a_t V = { 12+1, 345+1, 678910+1, 1234567891011ll+1, { "XXX..XXX", "YYY..YYY" } }; a_t A2; volatile a_t V2; int main (void) { if (A.i1 != 12 || A.i1 != V.i1 -1) abort(); if (A.i2 != 345 || A.i2 != V.i2 -1) abort(); if (A.i4 != 678910 || A.i4 != V.i4 -1) abort(); if (A.i8 != 1234567891011ll || A.i8 != V.i8 -1) abort(); A2 = A; V2 = V; if (A2.i1 != 12 || A2.i1 != V2.i1 -1) abort(); if (A2.i2 != 345 || A2.i2 != V2.i2 -1) abort(); if (A2.i4 != 678910 || A2.i4 != V2.i4 -1) abort(); if (A2.i8 != 1234567891011ll || A2.i8 != V2.i8 -1) abort(); if (strcmp (A2.str[0], "xxx..xxx")) abort(); if (strcmp (A2.str[1], "yyy..yyy")) abort(); if (strcmp ((const char*) V2.str[0], "XXX..XXX")) abort(); if (strcmp ((const char*) V2.str[1], "YYY..YYY")) abort(); exit (0); return 0; }