I've checked in the attached patch for PR79738.

-Sandra
2018-11-25  Sandra Loosemore  <san...@codesourcery.com>

	PR web/79738

	gcc/
	* doc/extend.texi (Common Function Attributes): Clarify that
	functions with "const" attribute can read const global variables.
Index: gcc/doc/extend.texi
===================================================================
--- gcc/doc/extend.texi	(revision 266441)
+++ gcc/doc/extend.texi	(working copy)
@@ -2521,11 +2521,13 @@ are automatically detected and this attr
 Many functions do not examine any values except their arguments, and
 have no effects except to return a value.  Calls to such functions lend
 themselves to optimization such as common subexpression elimination.
+The presence of the @code{const} attribute on a function declaration 
+allows GCC to emit more efficient code for some calls to the function.  
+
 The @code{const} attribute imposes greater restrictions on a function's
-definition than the similar @code{pure} attribute below because it prohibits
-the function from reading global variables.  Consequently, the presence of
-the attribute on a function declaration allows GCC to emit more efficient
-code for some calls to the function.  Decorating the same function with
+definition than the similar @code{pure} attribute below because it
+additionally prohibits the function from reading memory except for
+constant global variables.  Decorating the same function with
 both the @code{const} and the @code{pure} attribute is diagnosed.
 
 @cindex pointer arguments
@@ -3315,8 +3317,9 @@ depending on volatile memory or other sy
 two consecutive calls (such as @code{feof} in a multithreading environment).
 
 The @code{pure} attribute imposes similar but looser restrictions on
-a function's defintion than the @code{const} attribute: it allows the
-function to read global variables.  Decorating the same function with
+a function's definition than the @code{const} attribute: @code{pure}
+allows the function to read any non-volatile memory, not just
+constant global variables.  Decorating the same function with
 both the @code{pure} and the @code{const} attribute is diagnosed.
 Because a @code{pure} function cannot have any side effects it does not
 make sense for such a function to return @code{void}.  Declaring such

Reply via email to