| /* PR middle-end/90404 */ |
| |
| const int c1 = 20; /* { dg-message "declared here" } */ |
| int test_1 (void) |
| { |
| *((int*) &c1) = 10; /* { dg-warning "write to 'const' object 'c1'" } */ |
| return c1; |
| } |
| |
| /* Example of writing to a subregion (an element within a const array). */ |
| |
| const int c2[10]; /* { dg-message "declared here" } */ |
| int test_2 (void) |
| { |
| ((int*) &c2)[5] = 10; /* { dg-warning "write to 'const' object 'c2'" } */ |
| return c2[5]; |
| } |
| |
| const char s3[] = "012.45"; /* { dg-message "declared here" } */ |
| int test_3 (void) |
| { |
| char *p = __builtin_strchr (s3, '.'); |
| *p = 0; /* { dg-warning "write to 'const' object 's3'" } */ |
| |
| if (__builtin_strlen (p) != 3) |
| __builtin_abort (); |
| |
| return s3[3] == 0; |
| } |