From 6d34c1c4f3cb9537b65a57ee9d6c80853ea0017a Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sat, 16 Jun 2001 10:59:48 +0000 Subject: [PATCH] cpp.texi, [...]: Update. * cpp.texi, invoke.texi: Update. * cpp.1, gcc.1: Regenerate. From-SVN: r43419 --- gcc/ChangeLog | 5 ++++ gcc/doc/cpp.1 | 44 +++++++++++++++++++----------- gcc/doc/cpp.texi | 65 +++++++++++++++++++++++++++------------------ gcc/doc/gcc.1 | 14 +++++----- gcc/doc/invoke.texi | 10 ++++--- 5 files changed, 87 insertions(+), 51 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d557c5c0966..bcdd9079ca4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-06-16 Neil Booth + + * cpp.texi, invoke.texi: Update. + * cpp.1, gcc.1: Regenerate. + Sat Jun 16 12:45:20 CEST 2001 Jan Hubicka * i386.md (minsf): Fix splitter. (PR fortran/3191) diff --git a/gcc/doc/cpp.1 b/gcc/doc/cpp.1 index 15bd6eeaece..281cd37c2d5 100644 --- a/gcc/doc/cpp.1 +++ b/gcc/doc/cpp.1 @@ -1,5 +1,5 @@ .\" Automatically generated by Pod::Man version 1.16 -.\" Sat Jun 16 00:25:57 2001 +.\" Sat Jun 16 11:46:14 2001 .\" .\" Standard preamble: .\" ====================================================================== @@ -203,10 +203,14 @@ Either \fIinfile\fR or \fIoutfile\fR may be \fB-\fR, which as means to write to standard output. Also, if either file is omitted, it means the same as if \fB-\fR had been specified for that file. .PP -All single-letter options which take an argument may have that argument -appear immediately after the option letter, or with a space between -option and argument: \fB\-Ifoo\fR and \fB\-I foo\fR have the same -effect. +Unless otherwise noted, or the option ends in \fB=\fR, all options +which take an argument may have that argument appear either immediately +after the option, or with a space between option and argument: +\&\fB\-Ifoo\fR and \fB\-I foo\fR have the same effect. +.PP +Many options have multi-letter names; therefore multiple single-letter +options may \fInot\fR be grouped: \fB\-dM\fR is very different from +\&\fB\-d\ \-M\fR. .Ip "\fB\-D\fR \fIname\fR" 4 .IX Item "-D name" Predefine \fIname\fR as a macro, with definition \f(CW\*(C`1\*(C'\fR. @@ -588,8 +592,15 @@ Cancel all predefined assertions and all assertions preceding it on the command line. Also, undefine all predefined macros and all macros preceding it on the command line. (This is a historical wart and may change in the future.) -.Ip "\fB\-dM\fR" 4 -.IX Item "-dM" +.Ip "\fB\-dCHARS\fR" 4 +.IX Item "-dCHARS" +\&\fI\s-1CHARS\s0\fR is a sequence of one or more of the following characters, +and must not be preceded by a space. Other characters are reserved for +future versions of \s-1GCC\s0, and silently ignored. If you specify characters +whose behavior conflicts, the result is undefined. +.RS 4 +.Ip "\fBM\fR" 4 +.IX Item "M" Instead of the normal output, generate a list of \fB#define\fR directives for all the macros defined during the execution of the preprocessor, including predefined macros. This gives you a way of @@ -600,19 +611,22 @@ Assuming you have no file \fIfoo.h\fR, the command \& touch foo.h; cpp -dM foo.h .Ve will show all the predefined macros. -.Ip "\fB\-dD\fR" 4 -.IX Item "-dD" -Like \fB\-dM\fR except in two respects: it does \fInot\fR include the +.Ip "\fBD\fR" 4 +.IX Item "D" +Like \fBM\fR except in two respects: it does \fInot\fR include the predefined macros, and it outputs \fIboth\fR the \fB#define\fR directives and the result of preprocessing. Both kinds of output go to the standard output file. -.Ip "\fB\-dN\fR" 4 -.IX Item "-dN" -Like \fB\-dD\fR, but emit only the macro names, not their expansions. -.Ip "\fB\-dI\fR" 4 -.IX Item "-dI" +.Ip "\fBN\fR" 4 +.IX Item "N" +Like \fBD\fR, but emit only the macro names, not their expansions. +.Ip "\fBI\fR" 4 +.IX Item "I" Output \fB#include\fR directives in addition to the result of preprocessing. +.RE +.RS 4 +.RE .Ip "\fB\-P\fR" 4 .IX Item "-P" Inhibit generation of linemarkers in the output from the preprocessor. diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi index fa545c81c50..05bd6bcb0bd 100644 --- a/gcc/doc/cpp.texi +++ b/gcc/doc/cpp.texi @@ -986,7 +986,7 @@ These rules are implementation-defined behavior according to the C standard. To minimize the risk of different compilers interpreting your computed includes differently, we recommend you use only a single object-like macro which expands to a string constant. This will also -minimize any confusion to people reading your program. +minimize confusion for people reading your program. @node Wrapper Headers @section Wrapper Headers @@ -1634,7 +1634,7 @@ eprintf("success!\n", ); @expansion{} fprintf(stderr, "success!\n", ); @end example -GNU CPP has a pair of extensions which deals with this problem. First, +GNU CPP has a pair of extensions which deal with this problem. First, you are allowed to leave the variable argument out entirely: @example @@ -1893,7 +1893,7 @@ testing @code{@w{(__GNUC__ && __cplusplus)}}. @item __STRICT_ANSI__ GCC defines this macro if and only if the @option{-ansi} switch, or a @option{-std} switch specifying strict conformance to some version of ISO C, -was specified when GCC was invoked. Its definition is the null string. +was specified when GCC was invoked. It is defined to @samp{1}. This macro exists primarily to direct GNU libc's header files to restrict their definitions to the minimal set found in the 1989 C standard. @@ -3006,13 +3006,13 @@ symbolic debuggers to be able to refer to @code{bison}'s input file. @samp{#line} directives into the output file. @samp{#line} is a directive that specifies the original line number and source file name for subsequent input in the current preprocessor input file. -@samp{#line} has four variants: +@samp{#line} has three variants: @table @code @item #line @var{linenum} -@var{linenum} is a decimal integer constant. It specifies the line -number which should be reported for the following line of input. -Subsequent lines are counted from @var{linenum}. +@var{linenum} is a non-negative decimal integer constant. It specifies +the line number which should be reported for the following line of +input. Subsequent lines are counted from @var{linenum}. @item #line @var{linenum} @var{filename} @var{linenum} is the same as for the first form, and has the same @@ -3022,15 +3022,7 @@ file it specifies, until something else happens to change that. @item #line @var{anything else} @var{anything else} is checked for macro calls, which are expanded. -The result should match one of the above three forms. - -@item # @var{linenum} @var{filename} @var{flags@dots{}} -This form is a GCC extension. @var{linenum} and @var{filename} are the -same as the second form. The @var{flags} are small increasing positive -integers, which have the same meaning as the flags which can appear at -the end of a linemarker in the preprocessor's output. -@xref{Preprocessor Output}. Note that this form does not use the -directive name @samp{line}. +The result should match one of the above two forms. @end table @samp{#line} directives alter the results of the @code{__FILE__} and @@ -3236,6 +3228,12 @@ wrapped in an implicit @code{extern "C"} block. @c maybe cross reference NO_IMPLICIT_EXTERN_C @end table +As an extension, the preprocessor accepts linemarkers in non-assembler +input files. They are treated like the corresponding @samp{#line} +directive, (@pxref{Line Control}), except that trailing flags are +permitted, and are interpreted with the meanings described above. If +multiple flags are given, they must be in ascending order. + Some directives may be duplicated in the output of the preprocessor. These are @samp{#ident} (always), @samp{#pragma} (only if the preprocessor does not handle the pragma itself), and @samp{#define} and @@ -3815,10 +3813,16 @@ Either @var{infile} or @var{outfile} may be @option{-}, which as means to write to standard output. Also, if either file is omitted, it means the same as if @option{-} had been specified for that file. -All single-letter options which take an argument may have that argument -appear immediately after the option letter, or with a space between -option and argument: @option{-Ifoo} and @option{-I foo} have the same -effect. +Unless otherwise noted, or the option ends in @samp{=}, all options +which take an argument may have that argument appear either immediately +after the option, or with a space between option and argument: +@option{-Ifoo} and @option{-I foo} have the same effect. + +@cindex grouping options +@cindex options, grouping +Many options have multi-letter names; therefore multiple single-letter +options may @emph{not} be grouped: @option{-dM} is very different from +@w{@samp{-d -M}}. @cindex options @table @gcctabopt @@ -4170,7 +4174,15 @@ the command line. Also, undefine all predefined macros and all macros preceding it on the command line. (This is a historical wart and may change in the future.) -@item -dM +@item -dCHARS +@var{CHARS} is a sequence of one or more of the following characters, +and must not be preceded by a space. Other characters are interpreted +by the compiler proper, or reserved for future versions of GCC, and so +are silently ignored. If you specify characters whose behavior +conflicts, the result is undefined. + +@table @samp +@item M Instead of the normal output, generate a list of @samp{#define} directives for all the macros defined during the execution of the preprocessor, including predefined macros. This gives you a way of @@ -4184,18 +4196,19 @@ touch foo.h; cpp -dM foo.h @noindent will show all the predefined macros. -@item -dD -Like @option{-dM} except in two respects: it does @emph{not} include the +@item D +Like @samp{M} except in two respects: it does @emph{not} include the predefined macros, and it outputs @emph{both} the @samp{#define} directives and the result of preprocessing. Both kinds of output go to the standard output file. -@item -dN -Like @option{-dD}, but emit only the macro names, not their expansions. +@item N +Like @samp{D}, but emit only the macro names, not their expansions. -@item -dI +@item I Output @samp{#include} directives in addition to the result of preprocessing. +@end table @item -P Inhibit generation of linemarkers in the output from the preprocessor. diff --git a/gcc/doc/gcc.1 b/gcc/doc/gcc.1 index 728886621fb..82fd7bc2b36 100644 --- a/gcc/doc/gcc.1 +++ b/gcc/doc/gcc.1 @@ -1,5 +1,5 @@ .\" Automatically generated by Pod::Man version 1.16 -.\" Thu Jun 14 22:41:32 2001 +.\" Sat Jun 16 09:19:37 2001 .\" .\" Standard preamble: .\" ====================================================================== @@ -138,7 +138,7 @@ .\" ====================================================================== .\" .IX Title "GCC 1" -.TH GCC 1 "gcc-3.1" "2001-06-14" "GNU" +.TH GCC 1 "gcc-3.1" "2001-06-16" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler @@ -3619,12 +3619,14 @@ preprocessing. Indicate to the preprocessor that the input file has already been preprocessed. This suppresses things like macro expansion, trigraph conversion, escaped newline splicing, and processing of most directives. -In this mode the integrated preprocessor is little more than a tokenizer -for the front ends. +The preprocessor still recognizes and removes comments, so that you can +pass a file preprocessed with \fB\-C\fR to the compiler without +problems. In this mode the integrated preprocessor is little more than +a tokenizer for the front ends. .Sp \&\fB\-fpreprocessed\fR is implicit if the input file has one of the -extensions \fBi\fR, \fBii\fR or \fBmi\fR indicating it has already -been preprocessed. +extensions \fBi\fR, \fBii\fR or \fBmi\fR. These are the extensions +that \s-1GCC\s0 uses for preprocessed files created by \fB\-save-temps\fR. .Ip "\fB\-trigraphs\fR" 4 .IX Item "-trigraphs" Process \s-1ISO\s0 standard trigraph sequences. These are three-character diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 72c73dd66ed..9bef3a7e0cd 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -4059,12 +4059,14 @@ preprocessing. Indicate to the preprocessor that the input file has already been preprocessed. This suppresses things like macro expansion, trigraph conversion, escaped newline splicing, and processing of most directives. -In this mode the integrated preprocessor is little more than a tokenizer -for the front ends. +The preprocessor still recognizes and removes comments, so that you can +pass a file preprocessed with @option{-C} to the compiler without +problems. In this mode the integrated preprocessor is little more than +a tokenizer for the front ends. @option{-fpreprocessed} is implicit if the input file has one of the -extensions @samp{i}, @samp{ii} or @samp{mi} indicating it has already -been preprocessed. +extensions @samp{i}, @samp{ii} or @samp{mi}. These are the extensions +that GCC uses for preprocessed files created by @option{-save-temps}. @item -trigraphs @opindex trigraphs -- 2.30.2