diff mbox series

options: Fix "Multiple different help strings" error diagnostic (was: make conflicting help text an error)

Message ID 8735iz18bh.fsf@euler.schwinge.homeip.net
State New
Headers show
Series options: Fix "Multiple different help strings" error diagnostic (was: make conflicting help text an error) | expand

Commit Message

Thomas Schwinge March 30, 2022, 8:42 p.m. UTC
Hi!

On 2012-05-13T11:04:36+0200, Manuel López-Ibáñez <lopezibanez@gmail.com> wrote:
> These warnings are invisible when building but they may help to detect
> if an option is duplicated somewhere else with different purpose , so
> it would be better to make this an error,

ACK.

> --- gcc/optc-gen.awk  (revision 187427)
> +++ gcc/optc-gen.awk  (working copy)

>               else if (help[i] != "" && help[i + 1] != help[i])
> -                     print "warning: multiple different help strings for " \
> -                             opts[i] ":\n\t" help[i] "\n\t" help[i + 1] \
> -                             | "cat 1>&2"
> +                     print "#error Multiple different help strings for " \
> +                             opts[i] ":\n\t" help[i] "\n\t" help[i + 1]
> +

OK to push the attached 'options: Fix "Multiple different help strings"
error diagnostic'?


Grüße
 Thomas


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

Comments

Joseph Myers March 31, 2022, 5:17 p.m. UTC | #1
On Wed, 30 Mar 2022, Thomas Schwinge wrote:

> > --- gcc/optc-gen.awk  (revision 187427)
> > +++ gcc/optc-gen.awk  (working copy)
> 
> >               else if (help[i] != "" && help[i + 1] != help[i])
> > -                     print "warning: multiple different help strings for " \
> > -                             opts[i] ":\n\t" help[i] "\n\t" help[i + 1] \
> > -                             | "cat 1>&2"
> > +                     print "#error Multiple different help strings for " \
> > +                             opts[i] ":\n\t" help[i] "\n\t" help[i + 1]
> > +
> 
> OK to push the attached 'options: Fix "Multiple different help strings"
> error diagnostic'?

OK.
diff mbox series

Patch

From ab2f8ed4631ca94138ed0007a22e97a37f0311d3 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Wed, 30 Mar 2022 22:22:49 +0200
Subject: [PATCH] options: Fix "Multiple different help strings" error
 diagnostic

This currently causes a confusing litany, for example:

    options.cc:3245:2: error: #error Multiple different help strings for Wunused-result:
     #error Multiple different help strings for Wunused-result:
      ^
    options.cc:3246:2: error: 'Warn' was not declared in this scope
      Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
      ^
    options.cc:3246:7: error: expected '}' before 'if'
      Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
           ^
    options.cc:3246:7: error: expected ',' or ';' before 'if'
    options.cc:3256:54: error: expected unqualified-id before ',' token
         (unsigned short) -1, 0, CLVC_INTEGER, 0, -1, -1 },
                                                          ^
    [going on for several thousands of lines]

Fixed:

    options.cc:3245:2: error: #error Multiple different help strings for Wunused-result:
     #error Multiple different help strings for Wunused-result:
      ^
    options.cc:3246:2: error: #error Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
     #error   Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value.
      ^
    options.cc:3247:2: error: #error TEST.
     #error   TEST.
      ^

Fix-up for r187437/commit 71caddc5568f59a5990f39226f60979a7fe953ef
"optc-gen.awk: Error instead of warning for conflicting help".

	gcc/
	* optc-gen.awk <END>: Fix "Multiple different help strings" error
	diagnostic.
---
 gcc/optc-gen.awk | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index 8a66126141a..7774dfc38df 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -270,9 +270,12 @@  for (i = 0; i < n_opts; i++) {
 		flags[i + 1] = flags[i] " " flags[i + 1];
 		if (help[i + 1] == "")
 			help[i + 1] = help[i]
-		else if (help[i] != "" && help[i + 1] != help[i])
+		else if (help[i] != "" && help[i + 1] != help[i]) {
 			print "#error Multiple different help strings for " \
-				opts[i] ":\n\t" help[i] "\n\t" help[i + 1]
+				opts[i] ":"
+			print "#error   " help[i]
+			print "#error   " help[i + 1]
+		}
 				
 		i++;
 		back_chain[i] = "N_OPTS";
-- 
2.25.1