gty.texi (tag, desc): Say more about role of desc values in selecting between tags.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Mon, 3 Nov 2003 23:47:11 +0000 (23:47 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 3 Nov 2003 23:47:11 +0000 (18:47 -0500)
* doc/gty.texi (tag, desc): Say more about role of desc values in
selecting between tags.

From-SVN: r73233

gcc/ChangeLog
gcc/doc/gty.texi

index 9aa90f6577309fcb04c9f7db987969843fb0c037..268ed0c136a3f6c6b7c7a6fcef49168f50d1637f 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * doc/gty.texi (tag, desc): Say more about role of desc values in
+       selecting between tags.
+
 2003-11-03  Alexander Kabaev  <ak03@gte.com>
 
        * real.c (encode_ieee_single): Ensure proper promotion.
index 6d4f8394f42bffb4bb6de4b78634053abdca395a..56ce597f8dce86220c12f70473feeb826880dd84 100644 (file)
@@ -132,8 +132,19 @@ field really isn't ever used.
 @itemx default
 
 The type machinery needs to be told which field of a @code{union} is
-currently active.  This is done by giving each field a constant @code{tag}
-value, and then specifying a discriminator using @code{desc}.  For example,
+currently active.  This is done by giving each field a constant
+@code{tag} value, and then specifying a discriminator using @code{desc}.
+The value of the expression given by @code{desc} is compared against
+each @code{tag} value, each of which should be different.  If no
+@code{tag} is matched, the field marked with @code{default} is used if
+there is one, otherwise no field in the union will be marked.
+
+In the @code{desc} option, the ``current structure'' is the union that
+it discriminates.  Use @code{%1} to mean the structure containing it.
+(There are no escapes available to the @code{tag} option, since it's
+supposed to be a constant.)
+
+For example,
 @smallexample
 struct tree_binding GTY(())
 @{
@@ -141,19 +152,15 @@ struct tree_binding GTY(())
   union tree_binding_u @{
     tree GTY ((tag ("0"))) scope;
     struct cp_binding_level * GTY ((tag ("1"))) level;
-  @} GTY ((desc ("BINDING_HAS_LEVEL_P ((tree)&%0)"))) scope;
+  @} GTY ((desc ("BINDING_HAS_LEVEL_P ((tree)&%0)"))) xscope;
   tree value;
 @};
 @end smallexample
 
-In the @code{desc} option, the ``current structure'' is the union that
-it discriminates.  Use @code{%1} to mean the structure containing it.
-(There are no escapes available to the @code{tag} option, since it's
-supposed to be a constant.)
-
-Each @code{tag} should be different.  If no @code{tag} is matched,
-the field marked with @code{default} is used if there is one, otherwise
-no field in the union will be marked.
+In this example, the value of BINDING_HAS_LEVEL_P when applied to a
+@code{struct tree_binding *} is presumed to be 0 or 1.  If 1, the type
+mechanism will treat the field @code{level} as being present and if 0,
+will treat the field @code{scope} as being present.
 
 @findex param_is
 @findex use_param