aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2016-01-22 09:25:58 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2016-01-22 09:25:58 +0000
commite1cf192b12c2b025dc675a05e88e9eb38ae82731 (patch)
tree7e549ed9c63deeffbd3904e8a4ada1054c668e4c /gcc/doc
parentb57d3a5c29d369b510c30159ec148a6980c8d261 (diff)
downloadgcc-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.texi14
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