diff options
author | Richard Biener <rguenther@suse.de> | 2023-01-09 12:46:28 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-01-09 13:31:44 +0100 |
commit | a5a8242153d078f1ebe60f00409415da260a29ee (patch) | |
tree | 14727901463d84d5f0759cc663254cc77db12ce8 /gcc/ada/rtfinal.c | |
parent | fb082e3293d45d928ae107d8f351b04be89d1bc2 (diff) | |
download | gcc-a5a8242153d078f1ebe60f00409415da260a29ee.zip gcc-a5a8242153d078f1ebe60f00409415da260a29ee.tar.gz gcc-a5a8242153d078f1ebe60f00409415da260a29ee.tar.bz2 |
middle-end/69482 - not preserving volatile accesses
The following addresses a long standing issue with not preserving
accesses to non-volatile objects through volatile qualified
pointers in the case that object gets expanded to a register. The
fix is to treat accesses to an object with a volatile qualified
access as forcing that object to memory. This issue got more
exposed recently so it regressed more since GCC 11.
PR middle-end/69482
* cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
qualified accesses also force objects to memory.
* gcc.target/i386/pr69482-1.c: New testcase.
* gcc.target/i386/pr69482-2.c: Likewise.
Diffstat (limited to 'gcc/ada/rtfinal.c')
0 files changed, 0 insertions, 0 deletions