Egor Pasko | 167ac2b | 2010-05-18 12:26:51 | [diff] [blame^] | 1 | /* Regression test for PR middle-end/23584 */ |
| 2 | /* Verify that dereferencing an absolute address inside of a function |
| 3 | makes that function impure. */ |
| 4 | |
| 5 | /* { dg-do compile } */ |
| 6 | /* { dg-options "-O1 -fdump-ipa-pure-const" } */ |
| 7 | |
| 8 | int test1 (void) |
| 9 | { |
| 10 | return * (volatile int *) 0x1234; |
| 11 | } |
| 12 | |
| 13 | int test2 (void) |
| 14 | { |
| 15 | int local = * (volatile int *) 0x1234; |
| 16 | return local; |
| 17 | } |
| 18 | |
| 19 | /* { dg-final { scan-ipa-dump-not "found to be pure: test1" "pure-const" } } */ |
| 20 | /* { dg-final { scan-ipa-dump-not "found to be pure: test2" "pure-const" } } */ |
| 21 | /* { dg-final { cleanup-ipa-dump "pure-const" } } */ |