1#include <stdlib.h> 2#include <string.h> 3 4typedef struct 5{ 6 char i1; 7 short i2; 8 long i4; 9 long long i8; 10 char str[2][10]; 11} a_t; 12 13const __as a_t A = 14 { 15 12, 345, 678910, 1234567891011ll, 16 { 17 "xxx..xxx", 18 "yyy..yyy" 19 } 20 }; 21 22const __as volatile a_t V = 23 { 24 12+1, 345+1, 678910+1, 1234567891011ll+1, 25 { 26 "XXX..XXX", 27 "YYY..YYY" 28 } 29 }; 30 31a_t A2; 32volatile a_t V2; 33 34int main (void) 35{ 36 if (A.i1 != 12 37 || A.i1 != V.i1 -1) 38 abort(); 39 40 if (A.i2 != 345 41 || A.i2 != V.i2 -1) 42 abort(); 43 44 if (A.i4 != 678910 45 || A.i4 != V.i4 -1) 46 abort(); 47 48 if (A.i8 != 1234567891011ll 49 || A.i8 != V.i8 -1) 50 abort(); 51 52 A2 = A; 53 V2 = V; 54 55 if (A2.i1 != 12 56 || A2.i1 != V2.i1 -1) 57 abort(); 58 59 if (A2.i2 != 345 60 || A2.i2 != V2.i2 -1) 61 abort(); 62 63 if (A2.i4 != 678910 64 || A2.i4 != V2.i4 -1) 65 abort(); 66 67 if (A2.i8 != 1234567891011ll 68 || A2.i8 != V2.i8 -1) 69 abort(); 70 71 if (strcmp (A2.str[0], "xxx..xxx")) 72 abort(); 73 if (strcmp (A2.str[1], "yyy..yyy")) 74 abort(); 75 76 if (strcmp ((const char*) V2.str[0], "XXX..XXX")) 77 abort(); 78 if (strcmp ((const char*) V2.str[1], "YYY..YYY")) 79 abort(); 80 81 exit (0); 82 return 0; 83} 84