re PR preprocessor/47823 (#pragma once is documented in a weird spot)
authorSandra Loosemore <sandra@codesourcery.com>
Tue, 13 Nov 2018 02:06:30 +0000 (21:06 -0500)
committerSandra Loosemore <sandra@gcc.gnu.org>
Tue, 13 Nov 2018 02:06:30 +0000 (21:06 -0500)
2018-11-12  Sandra Loosemore  <sandra@codesourcery.com>

PR preprocessor/47823

gcc/
* doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once
documentation to...
(Pragmas): ...here.
* doc/extend.texi (Pragmas): Note additional pragmas documented
in the CPP manual.

From-SVN: r266043

gcc/ChangeLog
gcc/doc/cpp.texi
gcc/doc/extend.texi

index 16ecf33dc349934fcb1308baf73c61a946d0df21..17f8d315336135e36e466aeb33c349e9c3b39a92 100644 (file)
@@ -1,3 +1,12 @@
+2018-11-12  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR preprocessor/47823
+       * doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once
+       documentation to...
+       (Pragmas): ...here.  
+       * doc/extend.texi (Pragmas): Note additional pragmas documented
+       in the CPP manual.
+
 2018-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
 
        PR middle-end/86677
index cb5d5bd77759d1bebdadf898a32f09a2e5c22cd0..25518ee4a05079a148688e3d81d71025f44ac64b 100644 (file)
@@ -958,10 +958,7 @@ prevent the file from ever being read again, by either @samp{#import} or
 @samp{#import} and @samp{#include} to refer to the same header file.
 
 Another way to prevent a header file from being included more than once
-is with the @samp{#pragma once} directive.  If @samp{#pragma once} is
-seen when scanning a header file, that file will never be read again, no
-matter what.
-
+is with the @samp{#pragma once} directive (@pxref{Pragmas}).  
 @samp{#pragma once} does not have the problems that @samp{#import} does,
 but it is not recognized by all preprocessors, so you cannot rely on it
 in a portable program.
@@ -3550,12 +3547,14 @@ idea of the directory containing the current file.
 @node Pragmas
 @chapter Pragmas
 
+@cindex pragma directive
+
 The @samp{#pragma} directive is the method specified by the C standard
 for providing additional information to the compiler, beyond what is
 conveyed in the language itself.  The forms of this directive
 (commonly known as @dfn{pragmas}) specified by C standard are prefixed with 
 @code{STDC}.  A C compiler is free to attach any meaning it likes to other 
-pragmas.  All GNU-defined, supported pragmas have been given a
+pragmas.  Most GNU-defined, supported pragmas have been given a
 @code{GCC} prefix.
 
 @cindex @code{_Pragma}
@@ -3658,6 +3657,12 @@ contained in the pragma must be a single string literal.  Similarly,
 the @samp{#warning} and @samp{#error} directives, these pragmas can be
 embedded in preprocessor macros using @samp{_Pragma}.
 
+@item #pragma once
+If @code{#pragma once} is seen when scanning a header file, that
+file will never be read again, no matter what.  It is a less-portable
+alternative to using @samp{#ifndef} to guard the contents of header files
+against multiple inclusions.
+
 @end ftable
 
 @node Other Directives
index 04a069fc36680428b2f8be1017fb16dfa98e0c57..5b180e76b214880b725ea3365c8ec6f0dbf88a7f 100644 (file)
@@ -22064,6 +22064,10 @@ code originally written for other compilers.  Note that in general
 we do not recommend the use of pragmas; @xref{Function Attributes},
 for further explanation.
 
+The GNU C preprocessor recognizes several pragmas in addition to the
+compiler pragmas documented here.  Refer to the CPP manual for more
+information.
+
 @menu
 * AArch64 Pragmas::
 * ARM Pragmas::