There are cases where a default option value is -1 and
auto-detection happens in e.g. target.
Do not print these options. Leads to the following diff:
- -fdelete-null-pointer-checks [enabled]
+ -fdelete-null-pointer-checks
@@ -332 +332 @@
- -fleading-underscore [enabled]
+ -fleading-underscore
@@ -393 +393 @@
- -fprefetch-loop-arrays [enabled]
+ -fprefetch-loop-arrays
@@ -502 +502 @@
- -fstrict-volatile-bitfields [enabled]
+ -fstrict-volatile-bitfields
@@ -533 +533 @@
- -ftree-loop-if-convert [enabled]
+ -ftree-loop-if-convert
Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
Ready to be installed?
Thanks,
Martin
PR middle-end/103438
gcc/ChangeLog:
* opts-common.c (option_enabled): Return flag_var for BOOLEAN
types (the can contain an unknown value -1).
---
gcc/opts-common.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/gcc/opts-common.c b/gcc/opts-common.c
index 9d1914ff2ff..c4a19b9a0b6 100644
--- a/gcc/opts-common.c
+++ b/gcc/opts-common.c
@@ -1586,7 +1586,8 @@ option_flag_var (int opt_index, struct gcc_options *opts)
}
/* Return 1 if option OPT_IDX is enabled in OPTS, 0 if it is disabled,
- or -1 if it isn't a simple on-off switch. */
+ or -1 if it isn't a simple on-off switch (or if the value is unknown,
+ typically set later in target). */
int
option_enabled (int opt_idx, unsigned lang_mask, void *opts)
@@ -1608,9 +1609,9 @@ option_enabled (int opt_idx, unsigned lang_mask, void
*opts)
{
case CLVC_BOOLEAN:
if (option->cl_host_wide_int)
- return *(HOST_WIDE_INT *) flag_var != 0;
+ return *(HOST_WIDE_INT *) flag_var;
else
- return *(int *) flag_var != 0;
+ return *(int *) flag_var;
case CLVC_EQUAL:
if (option->cl_host_wide_int)
--
2.34.0