aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2012-03-20 09:23:26 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2012-03-20 10:23:26 +0100
commit9b96cf92a4334eccb74163397e94ade6e4acac48 (patch)
treea23455fc57b6be09a4f5b366cd921e5eb0f639a5 /gcc
parent18dae0162f33745cb9a100029b124c5c14f402e4 (diff)
downloadgcc-9b96cf92a4334eccb74163397e94ade6e4acac48.zip
gcc-9b96cf92a4334eccb74163397e94ade6e4acac48.tar.gz
gcc-9b96cf92a4334eccb74163397e94ade6e4acac48.tar.bz2
gnat_rm.texi, [...]: Update documentation.
2012-03-20 Yannick Moy <moy@adacore.com> * gnat_rm.texi, sem_attr.ads: Update documentation. From-SVN: r185562
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog4
-rw-r--r--gcc/ada/gnat_rm.texi20
-rw-r--r--gcc/ada/sem_attr.ads7
3 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 5a6aa8c..4e5280b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,7 @@
+2012-03-20 Yannick Moy <moy@adacore.com>
+
+ * gnat_rm.texi, sem_attr.ads: Update documentation.
+
2012-03-19 Yannick Moy <moy@adacore.com>
* sem_ch6.adb: Minor code clean up.
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index e0ab56f..96e3ab1 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -285,6 +285,7 @@ Implementation Defined Attributes
* Unconstrained_Array::
* Universal_Literal_String::
* Unrestricted_Access::
+* Valid_Scalars::
* VADS_Size::
* Value_Size::
* Wchar_T_Size::
@@ -6035,6 +6036,7 @@ consideration, you should minimize the use of these attributes.
* Unconstrained_Array::
* Universal_Literal_String::
* Unrestricted_Access::
+* Valid_Scalars::
* VADS_Size::
* Value_Size::
* Wchar_T_Size::
@@ -6991,6 +6993,24 @@ scope. For instance, a function cannot use @code{Unrestricted_Access}
to create a unconstrained pointer and then return that value to the
caller.
+@node Valid_Scalars
+@unnumberedsec Valid_Scalars
+@findex Valid_Scalars
+@noindent
+The @code{'Valid_Scalars} attribute is intended to make it easier to
+check the validity of scalar subcomponents of composite objects. It
+is defined for any prefix @code{X} that denotes a scalar or composite
+object (after any implicit dereference), that is not of classwide type
+or of a formal generic type with an unknown discriminant.
+@code{X'Valid_Scalars} yields True if and only if @code{X'Valid}
+yields True, if @code{X} is a scalar object, or @code{Y'Valid} yields
+True for every scalar subcomponent @code{Y} of @code{X}, if @code{X}
+is a composite object. If computing the value of
+@code{X'Valid_Scalars} involves evaluations of subtype predicates, it
+is unspecified in which order these evaluations take place, or if they
+take place at all in case the result is False. The value of this
+attribute is of the predefined type Boolean.
+
@node VADS_Size
@unnumberedsec VADS_Size
@cindex @code{Size}, VADS compatibility
diff --git a/gcc/ada/sem_attr.ads b/gcc/ada/sem_attr.ads
index 25e6adf..71ac668 100644
--- a/gcc/ada/sem_attr.ads
+++ b/gcc/ada/sem_attr.ads
@@ -554,7 +554,12 @@ package Sem_Attr is
-------------------
Attribute_Valid_Scalars => True,
- -- Typ'Valid_Scalars applies to ???
+ -- Obj'Valid_Scalars applies to objects of scalar types, on which it is
+ -- equivalent to Obj'Valid, and objects of array and record types, on
+ -- which it amounts to applying 'Valid to each subcomponent of Obj. It
+ -- does not apply to prefixes of classwide type, or of a formal generic
+ -- type that has an unknown discriminant (which could be instantiated
+ -- with a classwide type).
----------------
-- Value_Size --