extend.texi (Common Variable Attributes): Document alias attribute.
authorMartin Sebor <msebor@redhat.com>
Mon, 5 Aug 2019 22:40:49 +0000 (22:40 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Mon, 5 Aug 2019 22:40:49 +0000 (16:40 -0600)
gcc/ChangeLog:

* doc/extend.texi (Common Variable Attributes): Document alias
attribute.

From-SVN: r274127

gcc/ChangeLog
gcc/doc/extend.texi

index 99c3669..4f722f8 100644 (file)
@@ -1,3 +1,8 @@
+2019-08-05  Martin Sebor  <msebor@redhat.com>
+
+       * doc/extend.texi (Common Variable Attributes): Document alias
+       attribute.
+
 2019-08-05  Marek Polacek  <polacek@redhat.com>
 
        PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
index 14b232b..254e492 100644 (file)
@@ -6719,6 +6719,33 @@ attributes.
 The following attributes are supported on most targets.
 
 @table @code
+
+@item alias ("@var{target}")
+@cindex @code{alias} variable attribute
+The @code{alias} variable attribute causes the declaration to be emitted
+as an alias for another symbol known as an @dfn{alias target}.  Except
+for top-level qualifiers the alias target must have the same type as
+the alias.  For instance, the following
+
+@smallexample
+int var_target;
+extern int __attribute__ ((alias ("var_target"))) var_alias;
+@end smallexample
+
+@noindent
+defines @code{var_alias} to be an alias for the @code{var_target} variable.
+
+It is an error if the alias target is not defined in the same translation
+unit as the alias.
+
+Note that in the absence of the attribute GCC assumes that distinct
+declarations with external linkage denote distinct objects.  Using both
+the alias and the alias target to access the same object is undefined
+in a translation unit without a declaration of the alias with the attribute.
+
+This attribute requires assembler and object file support, and may not be
+available on all targets.
+
 @cindex @code{aligned} variable attribute
 @item aligned
 @itemx aligned (@var{alignment})