This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Inserting new parameter in gcc
- From: "Manuel López-Ibáñez" <lopezibanez at gmail dot com>
- To: "Juan Luis Liarte" <juanluis dot liarte at aquiline dot es>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 9 Nov 2007 19:04:45 +0100
- Subject: Re: Inserting new parameter in gcc
- References: <47342387.9000303@aquiline.es>
Just to complete this discussion, the syntax of the *.opt files is
(almost exactly) mapped by the gen-*.awk scripts into flags that are
defined in the file gcc/opts.h. This file contains some comments about
these flags:
#define CL_PARAMS (1 << 18) /* Fake entry. Used to
display --param info with --help. */
#define CL_WARNING (1 << 19) /* Enables an (optional) warning message. */
#define CL_OPTIMIZATION (1 << 20) /* Enables an (optional) optimization. */
#define CL_TARGET (1 << 21) /* Target-specific option. */
#define CL_COMMON (1 << 22) /* Language-independent. */
#define CL_MIN_OPTION_CLASS CL_PARAMS
#define CL_MAX_OPTION_CLASS CL_COMMON
/* From here on the bits describe attributes of the options.
Before this point the bits have described the class of the option.
This distinction is important because --help will not list options
which only have these higher bits set. */
#define CL_DISABLED (1 << 23) /* Disabled in this configuration. */
#define CL_REPORT (1 << 24) /* Report argument with -fverbose-asm */
#define CL_JOINED (1 << 25) /* If takes joined argument. */
#define CL_SEPARATE (1 << 26) /* If takes a separate argument. */
#define CL_REJECT_NEGATIVE (1 << 27) /* Reject no- form. */
#define CL_MISSING_OK (1 << 28) /* Missing argument OK (joined). */
#define CL_UINTEGER (1 << 29) /* Argument is an integer >=0. */
#define CL_UNDOCUMENTED (1 << 30) /* Do not output with --help. */
Juan Luis, if you really want to contribute in this area, I would
suggest to add a sentence to the *.opt files and the scripts pointing
to gcc/opts.h and then improve the documentation there to mention the
original syntax and how it maps into the flags (although in most cases
it is pretty obvious: RejectNegative -> CL_REJECT_NEGATIVE).
Nevertheless, this doesn't mean we are not open to suggestions on how
to improve the current system.
Thanks,
Manuel.