diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-01-22 09:25:58 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-01-22 09:25:58 +0000 |
commit | e1cf192b12c2b025dc675a05e88e9eb38ae82731 (patch) | |
tree | 7e549ed9c63deeffbd3904e8a4ada1054c668e4c /gcc/doc | |
parent | b57d3a5c29d369b510c30159ec148a6980c8d261 (diff) | |
download | gcc-e1cf192b12c2b025dc675a05e88e9eb38ae82731.zip gcc-e1cf192b12c2b025dc675a05e88e9eb38ae82731.tar.gz gcc-e1cf192b12c2b025dc675a05e88e9eb38ae82731.tar.bz2 |
extend.texi (scalar_storage_order type attribute): Document restriction on type punning and aliasing, and remove future tense.
* doc/extend.texi (scalar_storage_order type attribute): Document
restriction on type punning and aliasing, and remove future tense.
From-SVN: r232718
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index e11ce4d..7e079ff 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -6496,22 +6496,26 @@ storage order with regard to the scalar storage order of the target: @itemize @item Taking the address of a scalar field of a @code{union} or a -@code{struct} with reverse scalar storage order is not permitted and will -yield an error. +@code{struct} with reverse scalar storage order is not permitted and yields +an error. @item Taking the address of an array field, whose component is scalar, of a @code{union} or a @code{struct} with reverse scalar storage order is -permitted but will yield a warning, unless @option{-Wno-scalar-storage-order} +permitted but yields a warning, unless @option{-Wno-scalar-storage-order} is specified. @item Taking the address of a @code{union} or a @code{struct} with reverse scalar storage order is permitted. @end itemize These restrictions exist because the storage order attribute is lost when -the address of a scalar or the address of an array with scalar component -is taken, so storing indirectly through this address will generally not work. +the address of a scalar or the address of an array with scalar component is +taken, so storing indirectly through this address generally does not work. The second case is nevertheless allowed to be able to perform a block copy from or to the array. +Moreover, the use of type punning or aliasing to toggle the storage order +is not supported; that is to say, a given scalar object cannot be accessed +through distinct types that assign a different storage order to it. + @item transparent_union @cindex @code{transparent_union} type attribute |