From: Hans-Peter Nilsson Date: Fri, 4 Dec 2020 19:27:23 +0000 (+0100) Subject: doc/implement-c.texi: About same-as-scalar-type volatile aggregate accesses, PR94600 X-Git-Tag: releases/gcc-10.3.0~543 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac2347289d4d8000a078b540b6c9c2c74bb33471;p=thirdparty%2Fgcc.git doc/implement-c.texi: About same-as-scalar-type volatile aggregate accesses, PR94600 We say very little about reads and writes to aggregate / compound objects, just scalar objects (i.e. assignments don't cause reads). Let's lets say something safe about aggregate objects, but only for those that are the same size as a scalar type. There's an equal-sounding section (Volatiles) in extend.texi, but this seems a more appropriate place, as specifying the behavior of a standard qualifier. gcc: 2020-12-04 Hans-Peter Nilsson Martin Sebor PR middle-end/94600 * doc/implement-c.texi (Qualifiers implementation): Add blurb about access to the whole of a volatile aggregate object, only for same-size as a scalar object. (cherry picked from commit eb79f4db49c5f5a807555e9d374524664eb537bf) --- diff --git a/gcc/doc/implement-c.texi b/gcc/doc/implement-c.texi index 692297b69c4a..d7433ba5213f 100644 --- a/gcc/doc/implement-c.texi +++ b/gcc/doc/implement-c.texi @@ -576,6 +576,11 @@ are of scalar types, the expression is interpreted by GCC as a read of the volatile object; in the other cases, the expression is only evaluated for its side effects. +When an object of an aggregate type, with the same size and alignment as a +scalar type @code{S}, is the subject of a volatile access by an assignment +expression or an atomic function, the access to it is performed as if the +object's declared type were @code{volatile S}. + @end itemize @node Declarators implementation