[0/4] v3 of: Option handling: add documentation URLs

Message ID 20231214150143.3305661-1-dmalcolm@redhat.com
Headers
Series v3 of: Option handling: add documentation URLs |

Message

David Malcolm Dec. 14, 2023, 3:01 p.m. UTC
  > Hi David,
> 
> On Fri, Dec 08, 2023 at 06:35:56PM -0500, David Malcolm wrote:
> > On Tue, 2023-11-21 at 23:43 +0000, Joseph Myers wrote:
> > > On Tue, 21 Nov 2023, Tobias Burnus wrote:
> > > 
> > > > On 21.11.23 14:57, David Malcolm wrote:
> > > > > On Tue, 2023-11-21 at 02:09 +0100, Hans-Peter Nilsson wrote:
> > > > > > Sorry for barging in though I did try finding the relevant
> > > > > > discussion, but is committing this generated stuff necessary?
> > > > > > Is it because we don't want to depend on Python being
> > > > > > present at build time?
> > > > > Partly, yes, [...]
> > > > 
> > > > I wonder how to ensure that this remains up to date. Should there
> > > > be an item at
> > > > 
> > > > https://gcc.gnu.org/branching.html and/or
> > > > https://gcc.gnu.org/releasing.html similar to the .pot generation?
> > >
> > > My suggestion earlier in the discussion was that it should be
> > > added to the post-commit CI discussed starting at
> > > <https://gcc.gnu.org/pipermail/gcc/2023-November/242835.html> (I
> > > think that CI is now in operation).  These are generated files
> > > that ought to be kept up to date with each commit that affects
> > > .opt files, unlike the .pot files where the expectation is that
> > > they should be up to date for releases and updated from time to
> > > time at other times for submission to the TP.
> > > 
> > I had a go at scripting the testing of this, but I am terrible at shell
> > scripts (maybe I should use Python?).  Here's what I have so far:
> > 
> > $ cat contrib/regenerate-index-urls.sh
> > 
> > set -x
> > 
> > SRC_DIR=$1
> > BUILD_DIR=$2
> > NUM_JOBS=$3
> > 
> > # FIXME: error-checking!
> > 
> > mkdir -p $BUILD_DIR || exit 1
> > cd $BUILD_DIR
> > $SRC_DIR/configure --disable-bootstrap --enable-languages=c,d,fortran || exit 2
> > make html-gcc -j$NUM_JOBS || exit 3
> > cd gcc || exit 4
> > make regenerate-opt-urls || exit 5
> > cd $SRC_DIR
> > (git diff $1 > /dev/null ) && echo "regenerate-opt-urls needs to be run and the results committed" || exit 6
> > 
> > # e.g.
> > #  time bash contrib/regenerate-index-urls.sh $(pwd) $(pwd)/../build-ci 64
> > 
> > This takes about 100 seconds of wallclock on my 64-core box (mostly
> > configuring gcc, which as well as the usual sequence of unparallelized
> > tests seems to require building libiberty and lto-plugin).  Is that
> > something we want to do on every commit?  Is implementing the CI a
> > blocker for getting the patches in? (if so, I'll likely need some help)
> 
> The CI builers don't have 64-cores, but a couple of hundred seconds
> shouldn't be an issue to do on each commit (OSUOSL just got us a
> second x86_64 container builder for larger jobs). The above can easily
> be added to the existing gcc-autoregen builder:
> https://builder.sourceware.org/buildbot/#/builders/gcc-autoregen
> https://sourceware.org/cgit/builder/tree/builder/master.cfg#n3453
> 
> Once your patch is in please feel free to sent an email to
> buildbot@sourceware.org
> https://sourceware.org/mailman/listinfo/buildbot
> And we'll add the above build steps and update the autotools
> Containerfile to include the fortran (gfortran?) and d (gdc?) build
> dependencies.
> 
> Cheers,
> 
> Mark

Thanks Mark.

Joseph: it seems that we have a way to add CI for this.

I refreshed the patches and successfully bootstrapped & regrtested them
on x86_64-pc-linux-gnu; here's the v3 version of them.

Are these OK for trunk, assuming I followup with adding CI for this?
(that said, I disappear for the rest of 2023 at the end of this week, so
I'd work on the CI in early January)

Thanks
Dave


David Malcolm (4):
  options: add gcc/regenerate-opt-urls.py
  Add generated .opt.urls files
  opts: add logic to generate options-urls.cc
  options: wire up options-urls.cc into gcc_urlifier

 gcc/Makefile.in                              |   34 +-
 gcc/ada/gcc-interface/lang.opt.urls          |   30 +
 gcc/analyzer/analyzer.opt.urls               |  206 ++
 gcc/c-family/c.opt.urls                      | 1409 ++++++++++++++
 gcc/common.opt.urls                          | 1832 ++++++++++++++++++
 gcc/config/aarch64/aarch64.opt.urls          |   84 +
 gcc/config/alpha/alpha.opt.urls              |   76 +
 gcc/config/alpha/elf.opt.urls                |    2 +
 gcc/config/arc/arc-tables.opt.urls           |    2 +
 gcc/config/arc/arc.opt.urls                  |  260 +++
 gcc/config/arm/arm-tables.opt.urls           |    2 +
 gcc/config/arm/arm.opt.urls                  |  149 ++
 gcc/config/arm/vxworks.opt.urls              |    2 +
 gcc/config/avr/avr.opt.urls                  |   71 +
 gcc/config/bfin/bfin.opt.urls                |   61 +
 gcc/config/bpf/bpf.opt.urls                  |   35 +
 gcc/config/c6x/c6x-tables.opt.urls           |    2 +
 gcc/config/c6x/c6x.opt.urls                  |   18 +
 gcc/config/cris/cris.opt.urls                |   65 +
 gcc/config/cris/elf.opt.urls                 |    8 +
 gcc/config/csky/csky.opt.urls                |  104 +
 gcc/config/csky/csky_tables.opt.urls         |    2 +
 gcc/config/darwin.opt.urls                   |  224 +++
 gcc/config/dragonfly.opt.urls                |    9 +
 gcc/config/epiphany/epiphany.opt.urls        |   52 +
 gcc/config/fr30/fr30.opt.urls                |    8 +
 gcc/config/freebsd.opt.urls                  |    9 +
 gcc/config/frv/frv.opt.urls                  |  111 ++
 gcc/config/ft32/ft32.opt.urls                |   20 +
 gcc/config/fused-madd.opt.urls               |    4 +
 gcc/config/g.opt.urls                        |    5 +
 gcc/config/gcn/gcn.opt.urls                  |   23 +
 gcc/config/gnu-user.opt.urls                 |    9 +
 gcc/config/h8300/h8300.opt.urls              |   29 +
 gcc/config/hpux11.opt.urls                   |    6 +
 gcc/config/i386/cygming.opt.urls             |   30 +
 gcc/config/i386/cygwin.opt.urls              |    6 +
 gcc/config/i386/djgpp.opt.urls               |    2 +
 gcc/config/i386/i386.opt.urls                |  602 ++++++
 gcc/config/i386/mingw-w64.opt.urls           |    5 +
 gcc/config/i386/mingw.opt.urls               |   12 +
 gcc/config/i386/nto.opt.urls                 |    5 +
 gcc/config/ia64/ia64.opt.urls                |  122 ++
 gcc/config/ia64/ilp32.opt.urls               |    8 +
 gcc/config/ia64/vms.opt.urls                 |    2 +
 gcc/config/iq2000/iq2000.opt.urls            |   14 +
 gcc/config/linux-android.opt.urls            |   11 +
 gcc/config/linux.opt.urls                    |   14 +
 gcc/config/lm32/lm32.opt.urls                |   14 +
 gcc/config/loongarch/loongarch.opt.urls      |   64 +
 gcc/config/lynx.opt.urls                     |    5 +
 gcc/config/m32c/m32c.opt.urls                |    8 +
 gcc/config/m32r/m32r.opt.urls                |   27 +
 gcc/config/m68k/ieee.opt.urls                |    4 +
 gcc/config/m68k/m68k-tables.opt.urls         |    2 +
 gcc/config/m68k/m68k.opt.urls                |  107 +
 gcc/config/m68k/uclinux.opt.urls             |    2 +
 gcc/config/mcore/mcore.opt.urls              |   38 +
 gcc/config/microblaze/microblaze.opt.urls    |   59 +
 gcc/config/mips/mips-tables.opt.urls         |    2 +
 gcc/config/mips/mips.opt.urls                |  269 +++
 gcc/config/mips/sde.opt.urls                 |    2 +
 gcc/config/mmix/mmix.opt.urls                |   44 +
 gcc/config/mn10300/mn10300.opt.urls          |   32 +
 gcc/config/moxie/moxie.opt.urls              |   14 +
 gcc/config/msp430/msp430.opt.urls            |   53 +
 gcc/config/nds32/nds32-elf.opt.urls          |    5 +
 gcc/config/nds32/nds32-linux.opt.urls        |    5 +
 gcc/config/nds32/nds32.opt.urls              |   57 +
 gcc/config/netbsd-elf.opt.urls               |    5 +
 gcc/config/netbsd.opt.urls                   |    6 +
 gcc/config/nios2/elf.opt.urls                |   14 +
 gcc/config/nios2/nios2.opt.urls              |   50 +
 gcc/config/nvptx/nvptx-gen.opt.urls          |    2 +
 gcc/config/nvptx/nvptx.opt.urls              |   29 +
 gcc/config/openbsd.opt.urls                  |    6 +
 gcc/config/or1k/elf.opt.urls                 |    8 +
 gcc/config/or1k/or1k.opt.urls                |   46 +
 gcc/config/pa/pa-hpux.opt.urls               |   11 +
 gcc/config/pa/pa-hpux1010.opt.urls           |    2 +
 gcc/config/pa/pa-hpux1111.opt.urls           |    2 +
 gcc/config/pa/pa-hpux1131.opt.urls           |    2 +
 gcc/config/pa/pa.opt.urls                    |   71 +
 gcc/config/pa/pa64-hpux.opt.urls             |    8 +
 gcc/config/pdp11/pdp11.opt.urls              |   41 +
 gcc/config/pru/pru.opt.urls                  |   17 +
 gcc/config/riscv/riscv.opt.urls              |   88 +
 gcc/config/rl78/rl78.opt.urls                |   31 +
 gcc/config/rpath.opt.urls                    |    2 +
 gcc/config/rs6000/476.opt.urls               |    2 +
 gcc/config/rs6000/aix64.opt.urls             |   23 +
 gcc/config/rs6000/darwin.opt.urls            |   14 +
 gcc/config/rs6000/linux64.opt.urls           |    4 +
 gcc/config/rs6000/rs6000-tables.opt.urls     |    2 +
 gcc/config/rs6000/rs6000.opt.urls            |  214 ++
 gcc/config/rs6000/sysv4.opt.urls             |   87 +
 gcc/config/rtems.opt.urls                    |    6 +
 gcc/config/rx/elf.opt.urls                   |   14 +
 gcc/config/rx/rx.opt.urls                    |   54 +
 gcc/config/s390/s390.opt.urls                |   92 +
 gcc/config/s390/tpf.opt.urls                 |    8 +
 gcc/config/sh/sh.opt.urls                    |  174 ++
 gcc/config/sh/superh.opt.urls                |    4 +
 gcc/config/sol2.opt.urls                     |   21 +
 gcc/config/sparc/long-double-switch.opt.urls |    6 +
 gcc/config/sparc/sparc.opt.urls              |  108 ++
 gcc/config/stormy16/stormy16.opt.urls        |    5 +
 gcc/config/v850/v850.opt.urls                |   60 +
 gcc/config/vax/elf.opt.urls                  |    2 +
 gcc/config/vax/vax.opt.urls                  |   10 +
 gcc/config/visium/visium.opt.urls            |   29 +
 gcc/config/vms/vms.opt.urls                  |    8 +
 gcc/config/vxworks-smp.opt.urls              |    5 +
 gcc/config/vxworks.opt.urls                  |   20 +
 gcc/config/xtensa/elf.opt.urls               |    5 +
 gcc/config/xtensa/uclinux.opt.urls           |    2 +
 gcc/config/xtensa/xtensa.opt.urls            |   37 +
 gcc/d/lang.opt.urls                          |  223 +++
 gcc/diagnostic.h                             |    6 +-
 gcc/doc/options.texi                         |   26 +
 gcc/doc/sourcebuild.texi                     |    4 +
 gcc/fortran/lang.opt.urls                    |  161 ++
 gcc/gcc-urlifier.cc                          |  106 +-
 gcc/gcc-urlifier.def                         |    2 -
 gcc/gcc-urlifier.h                           |    2 +-
 gcc/gcc.cc                                   |    2 +-
 gcc/go/lang.opt.urls                         |   17 +
 gcc/lto/lang.opt.urls                        |    8 +
 gcc/m2/lang.opt.urls                         |  118 ++
 gcc/opt-functions.awk                        |   15 +
 gcc/options-urls-cc-gen.awk                  |  105 +
 gcc/opts-diagnostic.h                        |    3 +-
 gcc/opts.cc                                  |   95 +-
 gcc/opts.h                                   |    8 +
 gcc/params.opt.urls                          |    2 +
 gcc/regenerate-opt-urls.py                   |  408 ++++
 gcc/rust/lang.opt.urls                       |   29 +
 gcc/testsuite/lib/gcc-dg.exp                 |    6 +
 gcc/toplev.cc                                |    5 +-
 139 files changed, 9351 insertions(+), 66 deletions(-)
 create mode 100644 gcc/ada/gcc-interface/lang.opt.urls
 create mode 100644 gcc/analyzer/analyzer.opt.urls
 create mode 100644 gcc/c-family/c.opt.urls
 create mode 100644 gcc/common.opt.urls
 create mode 100644 gcc/config/aarch64/aarch64.opt.urls
 create mode 100644 gcc/config/alpha/alpha.opt.urls
 create mode 100644 gcc/config/alpha/elf.opt.urls
 create mode 100644 gcc/config/arc/arc-tables.opt.urls
 create mode 100644 gcc/config/arc/arc.opt.urls
 create mode 100644 gcc/config/arm/arm-tables.opt.urls
 create mode 100644 gcc/config/arm/arm.opt.urls
 create mode 100644 gcc/config/arm/vxworks.opt.urls
 create mode 100644 gcc/config/avr/avr.opt.urls
 create mode 100644 gcc/config/bfin/bfin.opt.urls
 create mode 100644 gcc/config/bpf/bpf.opt.urls
 create mode 100644 gcc/config/c6x/c6x-tables.opt.urls
 create mode 100644 gcc/config/c6x/c6x.opt.urls
 create mode 100644 gcc/config/cris/cris.opt.urls
 create mode 100644 gcc/config/cris/elf.opt.urls
 create mode 100644 gcc/config/csky/csky.opt.urls
 create mode 100644 gcc/config/csky/csky_tables.opt.urls
 create mode 100644 gcc/config/darwin.opt.urls
 create mode 100644 gcc/config/dragonfly.opt.urls
 create mode 100644 gcc/config/epiphany/epiphany.opt.urls
 create mode 100644 gcc/config/fr30/fr30.opt.urls
 create mode 100644 gcc/config/freebsd.opt.urls
 create mode 100644 gcc/config/frv/frv.opt.urls
 create mode 100644 gcc/config/ft32/ft32.opt.urls
 create mode 100644 gcc/config/fused-madd.opt.urls
 create mode 100644 gcc/config/g.opt.urls
 create mode 100644 gcc/config/gcn/gcn.opt.urls
 create mode 100644 gcc/config/gnu-user.opt.urls
 create mode 100644 gcc/config/h8300/h8300.opt.urls
 create mode 100644 gcc/config/hpux11.opt.urls
 create mode 100644 gcc/config/i386/cygming.opt.urls
 create mode 100644 gcc/config/i386/cygwin.opt.urls
 create mode 100644 gcc/config/i386/djgpp.opt.urls
 create mode 100644 gcc/config/i386/i386.opt.urls
 create mode 100644 gcc/config/i386/mingw-w64.opt.urls
 create mode 100644 gcc/config/i386/mingw.opt.urls
 create mode 100644 gcc/config/i386/nto.opt.urls
 create mode 100644 gcc/config/ia64/ia64.opt.urls
 create mode 100644 gcc/config/ia64/ilp32.opt.urls
 create mode 100644 gcc/config/ia64/vms.opt.urls
 create mode 100644 gcc/config/iq2000/iq2000.opt.urls
 create mode 100644 gcc/config/linux-android.opt.urls
 create mode 100644 gcc/config/linux.opt.urls
 create mode 100644 gcc/config/lm32/lm32.opt.urls
 create mode 100644 gcc/config/loongarch/loongarch.opt.urls
 create mode 100644 gcc/config/lynx.opt.urls
 create mode 100644 gcc/config/m32c/m32c.opt.urls
 create mode 100644 gcc/config/m32r/m32r.opt.urls
 create mode 100644 gcc/config/m68k/ieee.opt.urls
 create mode 100644 gcc/config/m68k/m68k-tables.opt.urls
 create mode 100644 gcc/config/m68k/m68k.opt.urls
 create mode 100644 gcc/config/m68k/uclinux.opt.urls
 create mode 100644 gcc/config/mcore/mcore.opt.urls
 create mode 100644 gcc/config/microblaze/microblaze.opt.urls
 create mode 100644 gcc/config/mips/mips-tables.opt.urls
 create mode 100644 gcc/config/mips/mips.opt.urls
 create mode 100644 gcc/config/mips/sde.opt.urls
 create mode 100644 gcc/config/mmix/mmix.opt.urls
 create mode 100644 gcc/config/mn10300/mn10300.opt.urls
 create mode 100644 gcc/config/moxie/moxie.opt.urls
 create mode 100644 gcc/config/msp430/msp430.opt.urls
 create mode 100644 gcc/config/nds32/nds32-elf.opt.urls
 create mode 100644 gcc/config/nds32/nds32-linux.opt.urls
 create mode 100644 gcc/config/nds32/nds32.opt.urls
 create mode 100644 gcc/config/netbsd-elf.opt.urls
 create mode 100644 gcc/config/netbsd.opt.urls
 create mode 100644 gcc/config/nios2/elf.opt.urls
 create mode 100644 gcc/config/nios2/nios2.opt.urls
 create mode 100644 gcc/config/nvptx/nvptx-gen.opt.urls
 create mode 100644 gcc/config/nvptx/nvptx.opt.urls
 create mode 100644 gcc/config/openbsd.opt.urls
 create mode 100644 gcc/config/or1k/elf.opt.urls
 create mode 100644 gcc/config/or1k/or1k.opt.urls
 create mode 100644 gcc/config/pa/pa-hpux.opt.urls
 create mode 100644 gcc/config/pa/pa-hpux1010.opt.urls
 create mode 100644 gcc/config/pa/pa-hpux1111.opt.urls
 create mode 100644 gcc/config/pa/pa-hpux1131.opt.urls
 create mode 100644 gcc/config/pa/pa.opt.urls
 create mode 100644 gcc/config/pa/pa64-hpux.opt.urls
 create mode 100644 gcc/config/pdp11/pdp11.opt.urls
 create mode 100644 gcc/config/pru/pru.opt.urls
 create mode 100644 gcc/config/riscv/riscv.opt.urls
 create mode 100644 gcc/config/rl78/rl78.opt.urls
 create mode 100644 gcc/config/rpath.opt.urls
 create mode 100644 gcc/config/rs6000/476.opt.urls
 create mode 100644 gcc/config/rs6000/aix64.opt.urls
 create mode 100644 gcc/config/rs6000/darwin.opt.urls
 create mode 100644 gcc/config/rs6000/linux64.opt.urls
 create mode 100644 gcc/config/rs6000/rs6000-tables.opt.urls
 create mode 100644 gcc/config/rs6000/rs6000.opt.urls
 create mode 100644 gcc/config/rs6000/sysv4.opt.urls
 create mode 100644 gcc/config/rtems.opt.urls
 create mode 100644 gcc/config/rx/elf.opt.urls
 create mode 100644 gcc/config/rx/rx.opt.urls
 create mode 100644 gcc/config/s390/s390.opt.urls
 create mode 100644 gcc/config/s390/tpf.opt.urls
 create mode 100644 gcc/config/sh/sh.opt.urls
 create mode 100644 gcc/config/sh/superh.opt.urls
 create mode 100644 gcc/config/sol2.opt.urls
 create mode 100644 gcc/config/sparc/long-double-switch.opt.urls
 create mode 100644 gcc/config/sparc/sparc.opt.urls
 create mode 100644 gcc/config/stormy16/stormy16.opt.urls
 create mode 100644 gcc/config/v850/v850.opt.urls
 create mode 100644 gcc/config/vax/elf.opt.urls
 create mode 100644 gcc/config/vax/vax.opt.urls
 create mode 100644 gcc/config/visium/visium.opt.urls
 create mode 100644 gcc/config/vms/vms.opt.urls
 create mode 100644 gcc/config/vxworks-smp.opt.urls
 create mode 100644 gcc/config/vxworks.opt.urls
 create mode 100644 gcc/config/xtensa/elf.opt.urls
 create mode 100644 gcc/config/xtensa/uclinux.opt.urls
 create mode 100644 gcc/config/xtensa/xtensa.opt.urls
 create mode 100644 gcc/d/lang.opt.urls
 create mode 100644 gcc/fortran/lang.opt.urls
 create mode 100644 gcc/go/lang.opt.urls
 create mode 100644 gcc/lto/lang.opt.urls
 create mode 100644 gcc/m2/lang.opt.urls
 create mode 100644 gcc/options-urls-cc-gen.awk
 create mode 100644 gcc/params.opt.urls
 create mode 100755 gcc/regenerate-opt-urls.py
 create mode 100644 gcc/rust/lang.opt.urls
  

Comments

Mark Wielaard Dec. 15, 2023, 12:59 a.m. UTC | #1
Hi David,

On Thu, Dec 14, 2023 at 10:01:39AM -0500, David Malcolm wrote:
> > Once your patch is in please feel free to sent an email to
> > buildbot@sourceware.org
> > https://sourceware.org/mailman/listinfo/buildbot
> > And we'll add the above build steps and update the autotools
> > Containerfile to include the fortran (gfortran?) and d (gdc?) build
> > dependencies.
> 
> Joseph: it seems that we have a way to add CI for this.
> 
> I refreshed the patches and successfully bootstrapped & regrtested them
> on x86_64-pc-linux-gnu; here's the v3 version of them.
> 
> Are these OK for trunk, assuming I followup with adding CI for this?
> (that said, I disappear for the rest of 2023 at the end of this week, so
> I'd work on the CI in early January)

I will be around next week to fixup any CI issues.
But once you commit this we can immediate activate the check.

I have attached a patch for the gcc-autoregen builder to also do
regenerate-opt-urls. Since it is a --disable-bootstrap build and uses
ccache it should take just a few minutes. So can be done on every
commit.

Note that with you patch applied to master it does flag and generate
the attached diff (I assume that is expected).

Cheers,

Mark
From 83914698dfb77a85496e93e3faa5de9131347cb8 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Fri, 15 Dec 2023 01:43:27 +0100
Subject: [PATCH] Add regenerate-opt-urls to gcc-autoregen

Add gcc build dependencies and ccacheto Containerfile-autotools.
Add regenerate_opt_urls steps to gcc_autoregen_factory.
---
 builder/containers/Containerfile-autotools |  2 ++
 builder/master.cfg                         | 34 ++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/builder/containers/Containerfile-autotools b/builder/containers/Containerfile-autotools
index 1099986..8cc8a22 100644
--- a/builder/containers/Containerfile-autotools
+++ b/builder/containers/Containerfile-autotools
@@ -7,6 +7,8 @@ RUN apt-get update && \
     apt-get upgrade -y && \
     apt-get install -y \
       build-essential libtool perl python3-minimal bash \
+      libmpc-dev libgmp-dev libmpfr-dev gdc texinfo flex \
+      ccache \
       make git \
       gettext \
       m4 pkg-config \
diff --git a/builder/master.cfg b/builder/master.cfg
index 04c54da..0e5ce62 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -1200,6 +1200,35 @@ git_diff_step = steps.ShellCommand(
         name="git diff",
         haltOnFailure=True)
 
+# Note that the name of the default workdir is 'build'
+# 'build' is the name of the source checkout (yes, confusing).
+# So this creates 'build/objdir'.
+gcc_build_mkdir_step = steps.ShellCommand(
+        command=['mkdir', '-p', 'objdir'],
+        name='mkdir objdir',
+        haltOnFailure=True)
+
+gcc_configure_opt_urls_step = steps.Configure(
+        workdir='build/objdir',
+        command=["../configure",
+                 "--disable-multilib",
+                 "--disable-bootstrap",
+                 "--enable-languages=c,d,fortran"],
+        name="configure",
+        haltOnFailure=True)
+
+gcc_make_html_step = steps.Compile(
+        workdir='build/objdir',
+        command=['make', util.Interpolate('-j%(prop:ncpus)s'), 'html'],
+        name='make html',
+        haltOnFailure=True)
+
+gcc_make_regenerate_opt_urls_step = steps.Compile(
+        workdir='build/objdir/gcc',
+        command=['make', 'regenerate-opt-urls'],
+        name='make regenerate-opt-urls',
+        haltOnFailure=True)
+
 # Generic make clean step to be run at the end of a build
 make_clean_step = steps.ShellCommand(
         command=["make", "clean"],
@@ -3454,6 +3483,11 @@ gcc_autoregen_factory = util.BuildFactory()
 gcc_autoregen_factory.addStep(gcc_git_step)
 gcc_autoregen_factory.addStep(autoregen_step)
 gcc_autoregen_factory.addStep(git_diff_step)
+gcc_autoregen_factory.addStep(gcc_build_mkdir_step)
+gcc_autoregen_factory.addStep(gcc_configure_opt_urls_step)
+gcc_autoregen_factory.addStep(gcc_make_html_step)
+gcc_autoregen_factory.addStep(gcc_make_regenerate_opt_urls_step)
+gcc_autoregen_factory.addStep(git_diff_step)
 
 gcc_autoregen_builder = util.BuilderConfig(
         name="gcc-autoregen",
  
David Malcolm Dec. 15, 2023, 2:47 p.m. UTC | #2
On Fri, 2023-12-15 at 01:59 +0100, Mark Wielaard wrote:
> Hi David,
> 
> On Thu, Dec 14, 2023 at 10:01:39AM -0500, David Malcolm wrote:
> > > Once your patch is in please feel free to sent an email to
> > > buildbot@sourceware.org
> > > https://sourceware.org/mailman/listinfo/buildbot
> > > And we'll add the above build steps and update the autotools
> > > Containerfile to include the fortran (gfortran?) and d (gdc?)
> > > build
> > > dependencies.
> > 
> > Joseph: it seems that we have a way to add CI for this.
> > 
> > I refreshed the patches and successfully bootstrapped & regrtested
> > them
> > on x86_64-pc-linux-gnu; here's the v3 version of them.
> > 
> > Are these OK for trunk, assuming I followup with adding CI for
> > this?
> > (that said, I disappear for the rest of 2023 at the end of this
> > week, so
> > I'd work on the CI in early January)
> 
> I will be around next week to fixup any CI issues.
> But once you commit this we can immediate activate the check.
> 
> I have attached a patch for the gcc-autoregen builder to also do
> regenerate-opt-urls. Since it is a --disable-bootstrap build and uses
> ccache it should take just a few minutes. So can be done on every
> commit.

Thanks - this looks great.

> 
> Note that with you patch applied to master it does flag and generate
> the attached diff (I assume that is expected).

As it happens, it wasn't - the test detected that I messed up when I
regenerated the .opt.urls.  Mea culpa, and I guess that's a win for CI.

I now see that the jit html documentation is failing to build on my
machine [1].  So what I think happened is that I ran "make html"
(without -k), it failed on the jit docs, and I didn't notice, and
regenerated the .opt.urls with an old copy of the texinfo-generated
html for gcc, d, and fortran.

I'm attaching a regenerated version of patch 2 of the kit (regenerated
using 863df360fb6549ae35af9f052343d2578d4d2b63); I checked it by hand
and it includes all the entries your CI script indicated were missing

Dave

[1]v fwiw with ImportError: cannot import name 'environmentfilter' from
'jinja2' (/usr/local/lib64/python3.8/site-packages/jinja2/__init__.py)
  
Joseph Myers Dec. 20, 2023, 12:28 a.m. UTC | #3
On Thu, 14 Dec 2023, David Malcolm wrote:

> Are these OK for trunk, assuming I followup with adding CI for this?
> (that said, I disappear for the rest of 2023 at the end of this week, so
> I'd work on the CI in early January)

Patches 2 (updated at the time of commit to reflect the latest options 
then in the source), 3 and 4 are OK once patch 1 is ready, unless anyone 
objects within the next week.
  
David Malcolm Jan. 4, 2024, 2:57 p.m. UTC | #4
On Fri, 2023-12-15 at 01:59 +0100, Mark Wielaard wrote:
> Hi David,
> 
> On Thu, Dec 14, 2023 at 10:01:39AM -0500, David Malcolm wrote:
> > > Once your patch is in please feel free to sent an email to
> > > buildbot@sourceware.org
> > > https://sourceware.org/mailman/listinfo/buildbot
> > > And we'll add the above build steps and update the autotools
> > > Containerfile to include the fortran (gfortran?) and d (gdc?)
> > > build
> > > dependencies.
> > 
> > Joseph: it seems that we have a way to add CI for this.
> > 
> > I refreshed the patches and successfully bootstrapped & regrtested
> > them
> > on x86_64-pc-linux-gnu; here's the v3 version of them.
> > 
> > Are these OK for trunk, assuming I followup with adding CI for
> > this?
> > (that said, I disappear for the rest of 2023 at the end of this
> > week, so
> > I'd work on the CI in early January)
> 
> I will be around next week to fixup any CI issues.
> But once you commit this we can immediate activate the check.
> 
> I have attached a patch for the gcc-autoregen builder to also do
> regenerate-opt-urls. Since it is a --disable-bootstrap build and uses
> ccache it should take just a few minutes. So can be done on every
> commit.
> 
> Note that with you patch applied to master it does flag and generate
> the attached diff (I assume that is expected).

Hi Mark

I've pushed the .opt.urls patch kit to gcc trunk [1], so hopefully the
CI check you wrote can go live now.

Dave

[1], specifically, as these four commits:

  options: add gcc/regenerate-opt-urls.py:
    r14-6920-g9e49746da303b8
  Add generated .opt.urls files:
    r14-6921-g5bb18475a10d05
  opts: add logic to generate options-urls.cc:
    r14-6922-g6ecc1e32353e33
  options: wire up options-urls.cc into gcc_urlifier:
    r14-6923-g4ded42c2c5a5c9
  
Mark Wielaard Feb. 18, 2024, 10:58 p.m. UTC | #5
Hi David,

On Thu, Jan 04, 2024 at 09:57:09AM -0500, David Malcolm wrote:
> I've pushed the .opt.urls patch kit to gcc trunk [1], so hopefully the
> CI check you wrote can go live now.

And then I was on vacation myself and forgot. I am sorry.

So, I did try the regenerate-opt-urls locally, and it did generate the
attached diff. Which seems to show we really need this automated.

Going over the diff. The -Winfinite-recursion in rust does indeed seem
new.  As do the -mapx-inline-asm-use-gpr32 and mevex512 for i386.  And
the avr options -mskip-bug, -mflmap and mrodata-in-ram.  The change in
common.opt.urls for -Wuse-after-free comes from it being moved from
c++ to the c-family. The changes in mips.opt.urls seem to come from
commit 46df1369 "doc/invoke: Remove duplicate explicit-relocs entry of
MIPS".

The changes in c.opt.urls seem mostly reordering. The sorting makes
more sense after the diff imho. And must have come from commit
4666cbde5 "Sort warning options in c-family/c.opt".

Also the documentation for -Warray-parameter was fixed.

So I think the regenerate-opt-urls check does work as intended. So
lets automate it, because it looks like nobody regenerated the
url.opts after updating the documentation.

But we should first apply this diff. Could you double check it is
sane/correct?

Thanks,

Mark
  
Mark Wielaard Feb. 19, 2024, 11:38 a.m. UTC | #6
On Sun, 2024-02-18 at 23:58 +0100, Mark Wielaard wrote:
> So I think the regenerate-opt-urls check does work as intended. So
> lets automate it, because it looks like nobody regenerated the
> url.opts after updating the documentation.
> 
> But we should first apply this diff. Could you double check it is
> sane/correct?

And then I forgot to attach the diff. Attached now.
Hopefully it is identical for you after doing
  make html && cd gcc && make regenerate-opt-urls
(It is for me having now done it on a debian and fedora x86_64 setup.)

Cheers,

Mark
  
YunQiang Su Feb. 22, 2024, 3:57 a.m. UTC | #7
Mark Wielaard <mark@klomp.org> 于2024年2月19日周一 06:58写道:
>
> Hi David,
>
> On Thu, Jan 04, 2024 at 09:57:09AM -0500, David Malcolm wrote:
> > I've pushed the .opt.urls patch kit to gcc trunk [1], so hopefully the
> > CI check you wrote can go live now.
>
> And then I was on vacation myself and forgot. I am sorry.
>
> So, I did try the regenerate-opt-urls locally, and it did generate the
> attached diff. Which seems to show we really need this automated.
>
> Going over the diff. The -Winfinite-recursion in rust does indeed seem
> new.  As do the -mapx-inline-asm-use-gpr32 and mevex512 for i386.  And
> the avr options -mskip-bug, -mflmap and mrodata-in-ram.  The change in
> common.opt.urls for -Wuse-after-free comes from it being moved from
> c++ to the c-family. The changes in mips.opt.urls seem to come from
> commit 46df1369 "doc/invoke: Remove duplicate explicit-relocs entry of
> MIPS".
>

For MIPS, it's due to malformed patches to invoke.text.
I will fix them.

> The changes in c.opt.urls seem mostly reordering. The sorting makes
> more sense after the diff imho. And must have come from commit
> 4666cbde5 "Sort warning options in c-family/c.opt".
>
> Also the documentation for -Warray-parameter was fixed.
>
> So I think the regenerate-opt-urls check does work as intended. So
> lets automate it, because it looks like nobody regenerated the
> url.opts after updating the documentation.
>
> But we should first apply this diff. Could you double check it is
> sane/correct?
>
> Thanks,
>
> Mark
  
Mark Wielaard Feb. 24, 2024, 5:42 p.m. UTC | #8
Hi,

On Thu, Feb 22, 2024 at 11:57:50AM +0800, YunQiang Su wrote:
> Mark Wielaard <mark@klomp.org> 于2024年2月19日周一 06:58写道:
> > So, I did try the regenerate-opt-urls locally, and it did generate the
> > attached diff. Which seems to show we really need this automated.
> >
> > Going over the diff. The -Winfinite-recursion in rust does indeed seem
> > new.  As do the -mapx-inline-asm-use-gpr32 and mevex512 for i386.  And
> > the avr options -mskip-bug, -mflmap and mrodata-in-ram.  The change in
> > common.opt.urls for -Wuse-after-free comes from it being moved from
> > c++ to the c-family. The changes in mips.opt.urls seem to come from
> > commit 46df1369 "doc/invoke: Remove duplicate explicit-relocs entry of
> > MIPS".
> >
> 
> For MIPS, it's due to malformed patches to invoke.text.
> I will fix them.

Thanks. So with your commit 00bc8c0998d8 ("invoke.texi: Fix some
skipping UrlSuffix problem for MIPS") pushed now, the attached patch
fixes the remaining issues.

Is this OK to push?

> > The changes in c.opt.urls seem mostly reordering. The sorting makes
> > more sense after the diff imho. And must have come from commit
> > 4666cbde5 "Sort warning options in c-family/c.opt".
> >
> > Also the documentation for -Warray-parameter was fixed.
> >
> > So I think the regenerate-opt-urls check does work as intended. So
> > lets automate it, because it looks like nobody regenerated the
> > url.opts after updating the documentation.
> >
> > But we should first apply this diff. Could you double check it is
> > sane/correct?
> >
> > Thanks,
> >
> > Mark
> 
> 
> 
> -- 
> YunQiang Su
From c019327e919fff87ffa94799e8f521bda707a883 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sat, 24 Feb 2024 17:34:05 +0100
Subject: [PATCH] Regenerate opt.urls

There were several commits that didn't regenerate the opt.urls files.

Fixes: 438ef143679e ("rs6000: Neuter option -mpower{8,9}-vector")
Fixes: 50c549ef3db6 ("gccrs: enable -Winfinite-recursion warnings by default")
Fixes: 25bb8a40abd9 ("Move docs for -Wuse-after-free and -Wuseless-cast")
Fixes: 48448055fb70 ("AVR: Support .rodata in Flash for AVR64* and AVR128*")
Fixes: 42503cc257fb ("AVR: Document option -mskip-bug")
Fixes: 7de5bb642c12 ("i386: [APX] Document inline asm behavior and new switch")
Fixes: 49a14ee488b8 ("Add -mevex512 into invoke.texi")
Fixes: 4666cbde5e6d ("Sort warning options in c-family/c.opt.")

gcc/config/
	* rs6000/rs6000.opt.urls: Regenerate.
	* avr/avr.opt.urls: Likewise.
	* i386/i386.opt.urls: Likewise.
	* pru/pru.opt.urls: Likewise.
	* riscv/riscv.opt.urls: Likewise.

gcc/rust/
	* lang.opt.urls: Regenerate.

gcc/
	* common.opt.urls: Regenerate.

gcc/c-family/
	* c.opt.urls: Regenerate.
---
 gcc/c-family/c.opt.urls           | 351 +++++++++++++++---------------
 gcc/common.opt.urls               |   4 +-
 gcc/config/avr/avr.opt.urls       |   9 +
 gcc/config/i386/i386.opt.urls     |   8 +-
 gcc/config/pru/pru.opt.urls       |   2 +-
 gcc/config/riscv/riscv.opt.urls   |   2 +-
 gcc/config/rs6000/rs6000.opt.urls |   3 -
 gcc/rust/lang.opt.urls            |   3 +
 8 files changed, 200 insertions(+), 182 deletions(-)

diff --git a/gcc/c-family/c.opt.urls b/gcc/c-family/c.opt.urls
index 5365c8e2bc54..9f97dc61a778 100644
--- a/gcc/c-family/c.opt.urls
+++ b/gcc/c-family/c.opt.urls
@@ -88,6 +88,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wabsolute-value)
 Waddress
 UrlSuffix(gcc/Warning-Options.html#index-Waddress)
 
+Waddress-of-packed-member
+UrlSuffix(gcc/Warning-Options.html#index-Waddress-of-packed-member)
+
 Waligned-new
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Waligned-new)
 
@@ -115,6 +118,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Walloc-zero)
 Walloca-larger-than=
 UrlSuffix(gcc/Warning-Options.html#index-Walloca-larger-than_003d) LangUrlSuffix_D(gdc/Warnings.html#index-Walloca-larger-than)
 
+Warith-conversion
+UrlSuffix(gcc/Warning-Options.html#index-Warith-conversion)
+
 Warray-bounds=
 UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
 
@@ -122,13 +128,10 @@ Warray-compare
 UrlSuffix(gcc/Warning-Options.html#index-Warray-compare)
 
 Warray-parameter
-UrlSuffix(gcc/Warning-Options.html#index-Wno-array-parameter)
+UrlSuffix(gcc/Warning-Options.html#index-Warray-parameter)
 
 Warray-parameter=
-UrlSuffix(gcc/Warning-Options.html#index-Wno-array-parameter)
-
-Wzero-length-bounds
-UrlSuffix(gcc/Warning-Options.html#index-Wzero-length-bounds)
+UrlSuffix(gcc/Warning-Options.html#index-Warray-parameter)
 
 Wassign-intercept
 UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wassign-intercept)
@@ -148,9 +151,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wbool-compare)
 Wbool-operation
 UrlSuffix(gcc/Warning-Options.html#index-Wbool-operation)
 
-Wframe-address
-UrlSuffix(gcc/Warning-Options.html#index-Wframe-address)
-
 Wbuiltin-declaration-mismatch
 UrlSuffix(gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch) LangUrlSuffix_D(gdc/Warnings.html#index-Wbuiltin-declaration-mismatch)
 
@@ -217,6 +217,12 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wcatch-value)
 Wchar-subscripts
 UrlSuffix(gcc/Warning-Options.html#index-Wchar-subscripts)
 
+Wclass-conversion
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion)
+
+Wclass-memaccess
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess)
+
 Wclobbered
 UrlSuffix(gcc/Warning-Options.html#index-Wclobbered)
 
@@ -298,6 +304,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wdiscarded-qualifiers)
 Wdiv-by-zero
 UrlSuffix(gcc/Warning-Options.html#index-Wdiv-by-zero)
 
+Wdouble-promotion
+UrlSuffix(gcc/Warning-Options.html#index-Wdouble-promotion)
+
+Wduplicate-decl-specifier
+UrlSuffix(gcc/Warning-Options.html#index-Wduplicate-decl-specifier)
+
 Wduplicated-branches
 UrlSuffix(gcc/Warning-Options.html#index-Wduplicated-branches)
 
@@ -307,6 +319,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wduplicated-cond)
 Weffc++
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Weffc_002b_002b)
 
+Welaborated-enum-base
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Welaborated-enum-base)
+
 Wempty-body
 UrlSuffix(gcc/Warning-Options.html#index-Wempty-body)
 
@@ -328,12 +343,18 @@ UrlSuffix(gcc/Warning-Options.html#index-Werror) LangUrlSuffix_D(gdc/Warnings.ht
 Wexceptions
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexceptions)
 
+Wexpansion-to-defined
+UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
+
 Wextra
 UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra)
 
 Wextra-semi
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wextra-semi)
 
+Wflex-array-member-not-at-end
+UrlSuffix(gcc/Warning-Options.html#index-Wflex-array-member-not-at-end)
+
 Wfloat-conversion
 UrlSuffix(gcc/Warning-Options.html#index-Wfloat-conversion)
 
@@ -355,6 +376,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wformat-nonliteral)
 Wformat-overflow
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
 
+Wformat-overflow=
+UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
+
 Wformat-security
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-security)
 
@@ -364,6 +388,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wformat-signedness)
 Wformat-truncation
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
 
+Wformat-truncation=
+UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
+
 Wformat-y2k
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-y2k)
 
@@ -373,14 +400,8 @@ UrlSuffix(gcc/Warning-Options.html#index-Wformat-zero-length)
 Wformat=
 UrlSuffix(gcc/Warning-Options.html#index-Wformat)
 
-Wformat-overflow=
-UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
-
-Wformat-truncation=
-UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
-
-Wflex-array-member-not-at-end
-UrlSuffix(gcc/Warning-Options.html#index-Wflex-array-member-not-at-end)
+Wframe-address
+UrlSuffix(gcc/Warning-Options.html#index-Wframe-address)
 
 Wif-not-aligned
 UrlSuffix(gcc/Warning-Options.html#index-Wif-not-aligned)
@@ -391,6 +412,18 @@ UrlSuffix(gcc/Warning-Options.html#index-Wignored-qualifiers)
 Wignored-attributes
 UrlSuffix(gcc/Warning-Options.html#index-Wignored-attributes)
 
+Wimplicit
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit)
+
+Wimplicit-fallthrough=
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
+
+Wimplicit-function-declaration
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-function-declaration)
+
+Wimplicit-int
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-int)
+
 Winaccessible-base
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winaccessible-base)
 
@@ -400,9 +433,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wincompatible-pointer-types)
 Winfinite-recursion
 UrlSuffix(gcc/Warning-Options.html#index-Winfinite-recursion)
 
-Waddress-of-packed-member
-UrlSuffix(gcc/Warning-Options.html#index-Waddress-of-packed-member)
-
 Winit-self
 UrlSuffix(gcc/Warning-Options.html#index-Winit-self)
 
@@ -412,24 +442,6 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winit-list-lifetime)
 Winterference-size
 UrlSuffix(gcc/Warning-Options.html#index-Winterference-size)
 
-Wimplicit
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit)
-
-Wimplicit-fallthrough=
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
-
-Wdouble-promotion
-UrlSuffix(gcc/Warning-Options.html#index-Wdouble-promotion)
-
-Wexpansion-to-defined
-UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
-
-Wimplicit-function-declaration
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-function-declaration)
-
-Wimplicit-int
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-int)
-
 Winherited-variadic-ctor
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winherited-variadic-ctor)
 
@@ -460,12 +472,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wjump-misses-init)
 Wliteral-suffix
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wliteral-suffix)
 
-Wlogical-op
-UrlSuffix(gcc/Warning-Options.html#index-Wlogical-op)
-
 Wlogical-not-parentheses
 UrlSuffix(gcc/Warning-Options.html#index-Wlogical-not-parentheses)
 
+Wlogical-op
+UrlSuffix(gcc/Warning-Options.html#index-Wlogical-op)
+
 Wlong-long
 UrlSuffix(gcc/Warning-Options.html#index-Wlong-long)
 
@@ -475,12 +487,15 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmain)
 Wmain
 UrlSuffix(gcc/Warning-Options.html#index-Wmain)
 
-Wmemset-transposed-args
-UrlSuffix(gcc/Warning-Options.html#index-Wmemset-transposed-args)
+Wmaybe-uninitialized
+UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-uninitialized)
 
 Wmemset-elt-size
 UrlSuffix(gcc/Warning-Options.html#index-Wmemset-elt-size)
 
+Wmemset-transposed-args
+UrlSuffix(gcc/Warning-Options.html#index-Wmemset-transposed-args)
+
 Wmisleading-indentation
 UrlSuffix(gcc/Warning-Options.html#index-Wmisleading-indentation)
 
@@ -493,6 +508,9 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete)
 Wmismatched-tags
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-tags)
 
+Wmissing-attributes
+UrlSuffix(gcc/Warning-Options.html#index-Wmissing-attributes)
+
 Wmissing-braces
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-braces)
 
@@ -502,93 +520,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-declarations)
 Wmissing-field-initializers
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-field-initializers)
 
-Wmissing-requires
-UrlSuffix(gcc/Warning-Options.html#index-Wmissing-requires)
-
-Wmissing-template-keyword
-UrlSuffix(gcc/Warning-Options.html#index-Wmissing-template-keyword)
-
-Wmultistatement-macros
-UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
-
-Wmultiple-inheritance
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
-
-Wnamespaces
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnamespaces)
-
-Wnrvo
-UrlSuffix(gcc/Warning-Options.html#index-Wno-nrvo)
-
-Wpacked-not-aligned
-UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-not-aligned)
-
-Wrange-loop-construct
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-range-loop-construct)
-
-Wredundant-tags
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-tags)
-
-Wsized-deallocation
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sized-deallocation)
-
-Wsizeof-pointer-div
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-div)
-
-Wsizeof-array-div
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-div)
-
-Wsizeof-pointer-memaccess
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-memaccess)
-
-Wsizeof-array-argument
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-argument)
-
-Wstring-compare
-UrlSuffix(gcc/Warning-Options.html#index-Wno-string-compare)
-
-Wstringop-overflow
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
-
-Wstringop-overflow=
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
-
-Wstringop-overread
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overread)
-
-Wstringop-truncation
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-truncation)
-
-Wstrict-flex-arrays
-UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-flex-arrays)
-
-Wsuggest-attribute=format
-UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dformat)
-
-Wsuggest-override
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-override)
-
-Wswitch
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch)
-
-Wswitch-default
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-default)
-
-Wswitch-enum
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-enum)
-
-Wswitch-bool
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-bool)
-
-Wswitch-outside-range
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-outside-range)
-
-Wtemplates
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-templates)
-
-Wmissing-attributes
-UrlSuffix(gcc/Warning-Options.html#index-Wmissing-attributes)
-
 Wmissing-format-attribute
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-format-attribute)
 
@@ -601,12 +532,27 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-parameter-type)
 Wmissing-prototypes
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-prototypes)
 
+Wmissing-requires
+UrlSuffix(gcc/Warning-Options.html#index-Wmissing-requires)
+
+Wmissing-template-keyword
+UrlSuffix(gcc/Warning-Options.html#index-Wmissing-template-keyword)
+
 Wmissing-variable-declarations
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-variable-declarations)
 
 Wmultichar
 UrlSuffix(gcc/Warning-Options.html#index-Wmultichar)
 
+Wmultiple-inheritance
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
+
+Wmultistatement-macros
+UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
+
+Wnamespaces
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnamespaces)
+
 Wnarrowing
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnarrowing)
 
@@ -622,12 +568,6 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-noexcept-type)
 Wnon-template-friend
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-template-friend)
 
-Wclass-conversion
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion)
-
-Wclass-memaccess
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess)
-
 Wnon-virtual-dtor
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-virtual-dtor)
 
@@ -682,9 +622,15 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-override-init)
 Woverride-init-side-effects
 UrlSuffix(gcc/Warning-Options.html#index-Wno-override-init-side-effects)
 
+Wnrvo
+UrlSuffix(gcc/Warning-Options.html#index-Wno-nrvo)
+
 Wpacked-bitfield-compat
 UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-bitfield-compat)
 
+Wpacked-not-aligned
+UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-not-aligned)
+
 Wparentheses
 UrlSuffix(gcc/Warning-Options.html#index-Wno-parentheses)
 
@@ -694,6 +640,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-pedantic)
 Wpessimizing-move
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-pessimizing-move)
 
+Wplacement-new
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+
+Wplacement-new=
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+
 ; skipping UrlSuffix for 'Wpmf-conversions' due to multiple URLs:
 ;   duplicate: 'gcc/Bound-member-functions.html#index-Wno-pmf-conversions-1'
 ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-Wno-pmf-conversions'
@@ -723,11 +675,8 @@ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-W
 Wprotocol
 UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-protocol)
 
-Wplacement-new
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
-
-Wplacement-new=
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+Wrange-loop-construct
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-range-loop-construct)
 
 Wredundant-decls
 UrlSuffix(gcc/Warning-Options.html#index-Wno-redundant-decls)
@@ -735,12 +684,18 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-redundant-decls)
 Wredundant-move
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-move)
 
+Wredundant-tags
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-tags)
+
 Wregister
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-register)
 
 Wreorder
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-reorder)
 
+Wrestrict
+UrlSuffix(gcc/Warning-Options.html#index-Wno-restrict)
+
 Wreturn-mismatch
 UrlSuffix(gcc/Warning-Options.html#index-Wno-return-mismatch)
 
@@ -777,9 +732,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-count-overflow)
 Wshift-negative-value
 UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-negative-value)
 
-Warith-conversion
-UrlSuffix(gcc/Warning-Options.html#index-Warith-conversion)
-
 Wsign-compare
 UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-compare)
 
@@ -792,30 +744,93 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-conversion)
 Wsign-promo
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sign-promo)
 
-Wstrict-null-sentinel
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-strict-null-sentinel)
+Wsized-deallocation
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sized-deallocation)
 
-Wstrict-prototypes
-UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-prototypes)
+Wsizeof-array-div
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-div)
+
+Wsizeof-array-argument
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-argument)
+
+Wsizeof-pointer-div
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-div)
+
+Wsizeof-pointer-memaccess
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-memaccess)
 
 Wstrict-aliasing=
 UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-aliasing)
 
+Wstrict-flex-arrays
+UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-flex-arrays)
+
+Wstrict-null-sentinel
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-strict-null-sentinel)
+
 Wstrict-overflow=
 UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-overflow)
 
+Wstrict-prototypes
+UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-prototypes)
+
 Wstrict-selector-match
 UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-strict-selector-match)
 
+Wstring-compare
+UrlSuffix(gcc/Warning-Options.html#index-Wno-string-compare)
+
+Wstringop-overflow
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
+
+Wstringop-overflow=
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
+
+Wstringop-overread
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overread)
+
+Wstringop-truncation
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-truncation)
+
+Wsubobject-linkage
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-subobject-linkage)
+
+Wsuggest-attribute=format
+UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dformat)
+
+Wsuggest-override
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-override)
+
+Wswitch
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch)
+
+Wswitch-default
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-default)
+
+Wswitch-enum
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-enum)
+
+Wswitch-bool
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-bool)
+
+Wswitch-outside-range
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-outside-range)
+
 Wsync-nand
 UrlSuffix(gcc/Warning-Options.html#index-Wno-sync-nand)
 
 Wsystem-headers
 UrlSuffix(gcc/Warning-Options.html#index-Wno-system-headers)
 
+Wtemplates
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-templates)
+
 Wtautological-compare
 UrlSuffix(gcc/Warning-Options.html#index-Wno-tautological-compare)
 
+Wtemplate-id-cdtor
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-template-id-cdtor)
+
 Wterminate
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-terminate)
 
@@ -840,9 +855,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unicode)
 Wuninitialized
 UrlSuffix(gcc/Warning-Options.html#index-Wno-uninitialized)
 
-Wmaybe-uninitialized
-UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-uninitialized)
-
 Wunknown-pragmas
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unknown-pragmas) LangUrlSuffix_D(gdc/Warnings.html#index-Wno-unknown-pragmas)
 
@@ -852,6 +864,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unsuffixed-float-constants)
 Wunused
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused)
 
+Wunused-const-variable
+UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
+
+Wunused-const-variable=
+UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
+
 Wunused-local-typedefs
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-local-typedefs)
 
@@ -864,14 +882,11 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
 Wunused-variable
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-variable)
 
-Wunused-const-variable
-UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
-
-Wunused-const-variable=
-UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
-
 Wuse-after-free=
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-use-after-free)
+UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
+
+Wuseless-cast
+UrlSuffix(gcc/Warning-Options.html#index-Wno-useless-cast)
 
 Wvariadic-macros
 UrlSuffix(gcc/Warning-Options.html#index-Wno-variadic-macros)
@@ -882,6 +897,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-varargs) LangUrlSuffix_D(gdc/Warnin
 Wvexing-parse
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-vexing-parse)
 
+Wvirtual-move-assign
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-move-assign)
+
 Wvla
 UrlSuffix(gcc/Warning-Options.html#index-Wno-vla)
 
@@ -900,9 +918,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-volatile-register-var)
 Wvirtual-inheritance
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-inheritance)
 
-Wvirtual-move-assign
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-move-assign)
-
 Wwrite-strings
 UrlSuffix(gcc/Warning-Options.html#index-Wno-write-strings)
 
@@ -912,20 +927,8 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-xor-used-as-pow)
 Wzero-as-null-pointer-constant
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-zero-as-null-pointer-constant)
 
-Wuseless-cast
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-useless-cast)
-
-Wsubobject-linkage
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-subobject-linkage)
-
-Welaborated-enum-base
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Welaborated-enum-base)
-
-Wduplicate-decl-specifier
-UrlSuffix(gcc/Warning-Options.html#index-Wduplicate-decl-specifier)
-
-Wrestrict
-UrlSuffix(gcc/Warning-Options.html#index-Wno-restrict)
+Wzero-length-bounds
+UrlSuffix(gcc/Warning-Options.html#index-Wzero-length-bounds)
 
 ; skipping UrlSuffix for 'ansi' due to multiple URLs:
 ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
diff --git a/gcc/common.opt.urls b/gcc/common.opt.urls
index 4cb2d7dc628e..db4354989fcc 100644
--- a/gcc/common.opt.urls
+++ b/gcc/common.opt.urls
@@ -64,10 +64,10 @@ Warray-bounds=
 UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
 
 Wuse-after-free
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-use-after-free)
+UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
 
 Wuse-after-free=
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-use-after-free)
+UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
 
 Wattributes
 UrlSuffix(gcc/Warning-Options.html#index-Wattributes)
diff --git a/gcc/config/avr/avr.opt.urls b/gcc/config/avr/avr.opt.urls
index 7af677199cc4..9f09e9aff9f7 100644
--- a/gcc/config/avr/avr.opt.urls
+++ b/gcc/config/avr/avr.opt.urls
@@ -12,6 +12,9 @@ UrlSuffix(gcc/AVR-Options.html#index-mgas-isr-prologues)
 mn-flash=
 UrlSuffix(gcc/AVR-Options.html#index-mn-flash)
 
+mskip-bug
+UrlSuffix(gcc/AVR-Options.html#index-mskip-bug)
+
 mrmw
 UrlSuffix(gcc/AVR-Options.html#index-mrmw)
 
@@ -42,6 +45,12 @@ UrlSuffix(gcc/AVR-Options.html#index-maccumulate-args)
 mstrict-X
 UrlSuffix(gcc/AVR-Options.html#index-mstrict-X)
 
+mflmap
+UrlSuffix(gcc/AVR-Options.html#index-mflmap)
+
+mrodata-in-ram
+UrlSuffix(gcc/AVR-Options.html#index-mrodata-in-ram)
+
 msp8
 UrlSuffix(gcc/AVR-Options.html#index-msp8)
 
diff --git a/gcc/config/i386/i386.opt.urls b/gcc/config/i386/i386.opt.urls
index 9b988fd6996f..0f2015610aed 100644
--- a/gcc/config/i386/i386.opt.urls
+++ b/gcc/config/i386/i386.opt.urls
@@ -146,7 +146,7 @@ miamcu
 UrlSuffix(gcc/x86-Options.html#index-miamcu)
 
 mabi=
-UrlSuffix(gcc/x86-Options.html#index-mabi-6)
+UrlSuffix(gcc/x86-Options.html#index-mabi-7)
 
 mcall-ms2sysv-xlogues
 UrlSuffix(gcc/x86-Options.html#index-mcall-ms2sysv-xlogues)
@@ -597,6 +597,12 @@ UrlSuffix(gcc/x86-Options.html#index-msm4)
 mapxf
 UrlSuffix(gcc/x86-Options.html#index-mapxf)
 
+mapx-inline-asm-use-gpr32
+UrlSuffix(gcc/x86-Options.html#index-mapx-inline-asm-use-gpr32)
+
+mevex512
+UrlSuffix(gcc/x86-Options.html#index-mevex512)
+
 musermsr
 UrlSuffix(gcc/x86-Options.html#index-musermsr)
 
diff --git a/gcc/config/pru/pru.opt.urls b/gcc/config/pru/pru.opt.urls
index 373b02d5aedc..1f8a26a0db5f 100644
--- a/gcc/config/pru/pru.opt.urls
+++ b/gcc/config/pru/pru.opt.urls
@@ -13,5 +13,5 @@ mloop
 UrlSuffix(gcc/PRU-Options.html#index-mloop)
 
 mabi=
-UrlSuffix(gcc/PRU-Options.html#index-mabi-3)
+UrlSuffix(gcc/PRU-Options.html#index-mabi-4)
 
diff --git a/gcc/config/riscv/riscv.opt.urls b/gcc/config/riscv/riscv.opt.urls
index e1ab96658ea6..f40795866cfb 100644
--- a/gcc/config/riscv/riscv.opt.urls
+++ b/gcc/config/riscv/riscv.opt.urls
@@ -12,7 +12,7 @@ UrlSuffix(gcc/RISC-V-Options.html#index-mbranch-cost-4)
 ; skipping UrlSuffix for 'mplt' due to finding no URLs
 
 mabi=
-UrlSuffix(gcc/RISC-V-Options.html#index-mabi-4)
+UrlSuffix(gcc/RISC-V-Options.html#index-mabi-5)
 
 mpreferred-stack-boundary=
 UrlSuffix(gcc/RISC-V-Options.html#index-mpreferred-stack-boundary)
diff --git a/gcc/config/rs6000/rs6000.opt.urls b/gcc/config/rs6000/rs6000.opt.urls
index 28bf073c6cfd..c7c1cefe22cd 100644
--- a/gcc/config/rs6000/rs6000.opt.urls
+++ b/gcc/config/rs6000/rs6000.opt.urls
@@ -162,9 +162,6 @@ UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-msave-toc-indirect)
 mpower8-fusion
 UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-mpower8-fusion)
 
-mpower8-vector
-UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-mpower8-vector)
-
 mcrypto
 UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-mcrypto)
 
diff --git a/gcc/rust/lang.opt.urls b/gcc/rust/lang.opt.urls
index 9cf8987e7344..3d899ae97b0a 100644
--- a/gcc/rust/lang.opt.urls
+++ b/gcc/rust/lang.opt.urls
@@ -24,6 +24,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
 Wunused-result
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
 
+Winfinite-recursion
+UrlSuffix(gcc/Warning-Options.html#index-Winfinite-recursion)
+
 o
 UrlSuffix(gcc/Overall-Options.html#index-o)
  
Mark Wielaard March 3, 2024, 8:04 p.m. UTC | #9
Hi,

On Sat, Feb 24, 2024 at 06:42:58PM +0100, Mark Wielaard wrote:
> On Thu, Feb 22, 2024 at 11:57:50AM +0800, YunQiang Su wrote:
> > Mark Wielaard <mark@klomp.org> 于2024年2月19日周一 06:58写道:
> > > So, I did try the regenerate-opt-urls locally, and it did generate the
> > > attached diff. Which seems to show we really need this automated.
> > >
> > > Going over the diff. The -Winfinite-recursion in rust does indeed seem
> > > new.  As do the -mapx-inline-asm-use-gpr32 and mevex512 for i386.  And
> > > the avr options -mskip-bug, -mflmap and mrodata-in-ram.  The change in
> > > common.opt.urls for -Wuse-after-free comes from it being moved from
> > > c++ to the c-family. The changes in mips.opt.urls seem to come from
> > > commit 46df1369 "doc/invoke: Remove duplicate explicit-relocs entry of
> > > MIPS".
> > 
> > For MIPS, it's due to malformed patches to invoke.text.
> > I will fix them.
> 
> Thanks. So with your commit 00bc8c0998d8 ("invoke.texi: Fix some
> skipping UrlSuffix problem for MIPS") pushed now, the attached patch
> fixes the remaining issues.
> 
> Is this OK to push?

Ping.

I have now regenerated the patch to also include the new avr mfuse-add
change. It would be nice to get this committed so we can turn on the
automatic checker.

Thanks,

Mark
From 84373cd8045e67f0d1716dad899c3463b823ea97 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Sun, 3 Mar 2024 20:50:32 +0100
Subject: [PATCH] Regenerate opt.urls

There were several commits that didn't regenerate the opt.urls files.

Fixes: 438ef143679e ("rs6000: Neuter option -mpower{8,9}-vector")
Fixes: 50c549ef3db6 ("gccrs: enable -Winfinite-recursion warnings by default")
Fixes: 25bb8a40abd9 ("Move docs for -Wuse-after-free and -Wuseless-cast")
Fixes: 48448055fb70 ("AVR: Support .rodata in Flash for AVR64* and AVR128*")
Fixes: 42503cc257fb ("AVR: Document option -mskip-bug")
Fixes: 7de5bb642c12 ("i386: [APX] Document inline asm behavior and new switch")
Fixes: 49a14ee488b8 ("Add -mevex512 into invoke.texi")
Fixes: 4666cbde5e6d ("Sort warning options in c-family/c.opt.")
Fixes: cda383616183 ("AVR: target/114100 - Better indirect accesses for reduced Tiny")

gcc/config/
	* rs6000/rs6000.opt.urls: Regenerate.
	* avr/avr.opt.urls: Likewise.
	* i386/i386.opt.urls: Likewise.
	* pru/pru.opt.urls: Likewise.
	* riscv/riscv.opt.urls: Likewise.

gcc/rust/
	* lang.opt.urls: Regenerate.

gcc/
	* common.opt.urls: Regenerate.

gcc/c-family/
	* c.opt.urls: Regenerate.
---
 gcc/c-family/c.opt.urls           | 351 +++++++++++++++---------------
 gcc/common.opt.urls               |   4 +-
 gcc/config/avr/avr.opt.urls       |  15 ++
 gcc/config/i386/i386.opt.urls     |   8 +-
 gcc/config/pru/pru.opt.urls       |   2 +-
 gcc/config/riscv/riscv.opt.urls   |   2 +-
 gcc/config/rs6000/rs6000.opt.urls |   3 -
 gcc/rust/lang.opt.urls            |   3 +
 8 files changed, 206 insertions(+), 182 deletions(-)

diff --git a/gcc/c-family/c.opt.urls b/gcc/c-family/c.opt.urls
index 5365c8e2bc54..9f97dc61a778 100644
--- a/gcc/c-family/c.opt.urls
+++ b/gcc/c-family/c.opt.urls
@@ -88,6 +88,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wabsolute-value)
 Waddress
 UrlSuffix(gcc/Warning-Options.html#index-Waddress)
 
+Waddress-of-packed-member
+UrlSuffix(gcc/Warning-Options.html#index-Waddress-of-packed-member)
+
 Waligned-new
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Waligned-new)
 
@@ -115,6 +118,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Walloc-zero)
 Walloca-larger-than=
 UrlSuffix(gcc/Warning-Options.html#index-Walloca-larger-than_003d) LangUrlSuffix_D(gdc/Warnings.html#index-Walloca-larger-than)
 
+Warith-conversion
+UrlSuffix(gcc/Warning-Options.html#index-Warith-conversion)
+
 Warray-bounds=
 UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
 
@@ -122,13 +128,10 @@ Warray-compare
 UrlSuffix(gcc/Warning-Options.html#index-Warray-compare)
 
 Warray-parameter
-UrlSuffix(gcc/Warning-Options.html#index-Wno-array-parameter)
+UrlSuffix(gcc/Warning-Options.html#index-Warray-parameter)
 
 Warray-parameter=
-UrlSuffix(gcc/Warning-Options.html#index-Wno-array-parameter)
-
-Wzero-length-bounds
-UrlSuffix(gcc/Warning-Options.html#index-Wzero-length-bounds)
+UrlSuffix(gcc/Warning-Options.html#index-Warray-parameter)
 
 Wassign-intercept
 UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wassign-intercept)
@@ -148,9 +151,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wbool-compare)
 Wbool-operation
 UrlSuffix(gcc/Warning-Options.html#index-Wbool-operation)
 
-Wframe-address
-UrlSuffix(gcc/Warning-Options.html#index-Wframe-address)
-
 Wbuiltin-declaration-mismatch
 UrlSuffix(gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch) LangUrlSuffix_D(gdc/Warnings.html#index-Wbuiltin-declaration-mismatch)
 
@@ -217,6 +217,12 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wcatch-value)
 Wchar-subscripts
 UrlSuffix(gcc/Warning-Options.html#index-Wchar-subscripts)
 
+Wclass-conversion
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion)
+
+Wclass-memaccess
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess)
+
 Wclobbered
 UrlSuffix(gcc/Warning-Options.html#index-Wclobbered)
 
@@ -298,6 +304,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wdiscarded-qualifiers)
 Wdiv-by-zero
 UrlSuffix(gcc/Warning-Options.html#index-Wdiv-by-zero)
 
+Wdouble-promotion
+UrlSuffix(gcc/Warning-Options.html#index-Wdouble-promotion)
+
+Wduplicate-decl-specifier
+UrlSuffix(gcc/Warning-Options.html#index-Wduplicate-decl-specifier)
+
 Wduplicated-branches
 UrlSuffix(gcc/Warning-Options.html#index-Wduplicated-branches)
 
@@ -307,6 +319,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wduplicated-cond)
 Weffc++
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Weffc_002b_002b)
 
+Welaborated-enum-base
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Welaborated-enum-base)
+
 Wempty-body
 UrlSuffix(gcc/Warning-Options.html#index-Wempty-body)
 
@@ -328,12 +343,18 @@ UrlSuffix(gcc/Warning-Options.html#index-Werror) LangUrlSuffix_D(gdc/Warnings.ht
 Wexceptions
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexceptions)
 
+Wexpansion-to-defined
+UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
+
 Wextra
 UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra)
 
 Wextra-semi
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wextra-semi)
 
+Wflex-array-member-not-at-end
+UrlSuffix(gcc/Warning-Options.html#index-Wflex-array-member-not-at-end)
+
 Wfloat-conversion
 UrlSuffix(gcc/Warning-Options.html#index-Wfloat-conversion)
 
@@ -355,6 +376,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wformat-nonliteral)
 Wformat-overflow
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
 
+Wformat-overflow=
+UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
+
 Wformat-security
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-security)
 
@@ -364,6 +388,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wformat-signedness)
 Wformat-truncation
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
 
+Wformat-truncation=
+UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
+
 Wformat-y2k
 UrlSuffix(gcc/Warning-Options.html#index-Wformat-y2k)
 
@@ -373,14 +400,8 @@ UrlSuffix(gcc/Warning-Options.html#index-Wformat-zero-length)
 Wformat=
 UrlSuffix(gcc/Warning-Options.html#index-Wformat)
 
-Wformat-overflow=
-UrlSuffix(gcc/Warning-Options.html#index-Wformat-overflow)
-
-Wformat-truncation=
-UrlSuffix(gcc/Warning-Options.html#index-Wformat-truncation)
-
-Wflex-array-member-not-at-end
-UrlSuffix(gcc/Warning-Options.html#index-Wflex-array-member-not-at-end)
+Wframe-address
+UrlSuffix(gcc/Warning-Options.html#index-Wframe-address)
 
 Wif-not-aligned
 UrlSuffix(gcc/Warning-Options.html#index-Wif-not-aligned)
@@ -391,6 +412,18 @@ UrlSuffix(gcc/Warning-Options.html#index-Wignored-qualifiers)
 Wignored-attributes
 UrlSuffix(gcc/Warning-Options.html#index-Wignored-attributes)
 
+Wimplicit
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit)
+
+Wimplicit-fallthrough=
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
+
+Wimplicit-function-declaration
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-function-declaration)
+
+Wimplicit-int
+UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-int)
+
 Winaccessible-base
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winaccessible-base)
 
@@ -400,9 +433,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wincompatible-pointer-types)
 Winfinite-recursion
 UrlSuffix(gcc/Warning-Options.html#index-Winfinite-recursion)
 
-Waddress-of-packed-member
-UrlSuffix(gcc/Warning-Options.html#index-Waddress-of-packed-member)
-
 Winit-self
 UrlSuffix(gcc/Warning-Options.html#index-Winit-self)
 
@@ -412,24 +442,6 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winit-list-lifetime)
 Winterference-size
 UrlSuffix(gcc/Warning-Options.html#index-Winterference-size)
 
-Wimplicit
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit)
-
-Wimplicit-fallthrough=
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-fallthrough)
-
-Wdouble-promotion
-UrlSuffix(gcc/Warning-Options.html#index-Wdouble-promotion)
-
-Wexpansion-to-defined
-UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
-
-Wimplicit-function-declaration
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-function-declaration)
-
-Wimplicit-int
-UrlSuffix(gcc/Warning-Options.html#index-Wimplicit-int)
-
 Winherited-variadic-ctor
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winherited-variadic-ctor)
 
@@ -460,12 +472,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wjump-misses-init)
 Wliteral-suffix
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wliteral-suffix)
 
-Wlogical-op
-UrlSuffix(gcc/Warning-Options.html#index-Wlogical-op)
-
 Wlogical-not-parentheses
 UrlSuffix(gcc/Warning-Options.html#index-Wlogical-not-parentheses)
 
+Wlogical-op
+UrlSuffix(gcc/Warning-Options.html#index-Wlogical-op)
+
 Wlong-long
 UrlSuffix(gcc/Warning-Options.html#index-Wlong-long)
 
@@ -475,12 +487,15 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmain)
 Wmain
 UrlSuffix(gcc/Warning-Options.html#index-Wmain)
 
-Wmemset-transposed-args
-UrlSuffix(gcc/Warning-Options.html#index-Wmemset-transposed-args)
+Wmaybe-uninitialized
+UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-uninitialized)
 
 Wmemset-elt-size
 UrlSuffix(gcc/Warning-Options.html#index-Wmemset-elt-size)
 
+Wmemset-transposed-args
+UrlSuffix(gcc/Warning-Options.html#index-Wmemset-transposed-args)
+
 Wmisleading-indentation
 UrlSuffix(gcc/Warning-Options.html#index-Wmisleading-indentation)
 
@@ -493,6 +508,9 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete)
 Wmismatched-tags
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-tags)
 
+Wmissing-attributes
+UrlSuffix(gcc/Warning-Options.html#index-Wmissing-attributes)
+
 Wmissing-braces
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-braces)
 
@@ -502,93 +520,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-declarations)
 Wmissing-field-initializers
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-field-initializers)
 
-Wmissing-requires
-UrlSuffix(gcc/Warning-Options.html#index-Wmissing-requires)
-
-Wmissing-template-keyword
-UrlSuffix(gcc/Warning-Options.html#index-Wmissing-template-keyword)
-
-Wmultistatement-macros
-UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
-
-Wmultiple-inheritance
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
-
-Wnamespaces
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnamespaces)
-
-Wnrvo
-UrlSuffix(gcc/Warning-Options.html#index-Wno-nrvo)
-
-Wpacked-not-aligned
-UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-not-aligned)
-
-Wrange-loop-construct
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-range-loop-construct)
-
-Wredundant-tags
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-tags)
-
-Wsized-deallocation
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sized-deallocation)
-
-Wsizeof-pointer-div
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-div)
-
-Wsizeof-array-div
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-div)
-
-Wsizeof-pointer-memaccess
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-memaccess)
-
-Wsizeof-array-argument
-UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-argument)
-
-Wstring-compare
-UrlSuffix(gcc/Warning-Options.html#index-Wno-string-compare)
-
-Wstringop-overflow
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
-
-Wstringop-overflow=
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
-
-Wstringop-overread
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overread)
-
-Wstringop-truncation
-UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-truncation)
-
-Wstrict-flex-arrays
-UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-flex-arrays)
-
-Wsuggest-attribute=format
-UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dformat)
-
-Wsuggest-override
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-override)
-
-Wswitch
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch)
-
-Wswitch-default
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-default)
-
-Wswitch-enum
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-enum)
-
-Wswitch-bool
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-bool)
-
-Wswitch-outside-range
-UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-outside-range)
-
-Wtemplates
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-templates)
-
-Wmissing-attributes
-UrlSuffix(gcc/Warning-Options.html#index-Wmissing-attributes)
-
 Wmissing-format-attribute
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-format-attribute)
 
@@ -601,12 +532,27 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmissing-parameter-type)
 Wmissing-prototypes
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-prototypes)
 
+Wmissing-requires
+UrlSuffix(gcc/Warning-Options.html#index-Wmissing-requires)
+
+Wmissing-template-keyword
+UrlSuffix(gcc/Warning-Options.html#index-Wmissing-template-keyword)
+
 Wmissing-variable-declarations
 UrlSuffix(gcc/Warning-Options.html#index-Wmissing-variable-declarations)
 
 Wmultichar
 UrlSuffix(gcc/Warning-Options.html#index-Wmultichar)
 
+Wmultiple-inheritance
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
+
+Wmultistatement-macros
+UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
+
+Wnamespaces
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnamespaces)
+
 Wnarrowing
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wnarrowing)
 
@@ -622,12 +568,6 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-noexcept-type)
 Wnon-template-friend
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-template-friend)
 
-Wclass-conversion
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion)
-
-Wclass-memaccess
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess)
-
 Wnon-virtual-dtor
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-virtual-dtor)
 
@@ -682,9 +622,15 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-override-init)
 Woverride-init-side-effects
 UrlSuffix(gcc/Warning-Options.html#index-Wno-override-init-side-effects)
 
+Wnrvo
+UrlSuffix(gcc/Warning-Options.html#index-Wno-nrvo)
+
 Wpacked-bitfield-compat
 UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-bitfield-compat)
 
+Wpacked-not-aligned
+UrlSuffix(gcc/Warning-Options.html#index-Wno-packed-not-aligned)
+
 Wparentheses
 UrlSuffix(gcc/Warning-Options.html#index-Wno-parentheses)
 
@@ -694,6 +640,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-pedantic)
 Wpessimizing-move
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-pessimizing-move)
 
+Wplacement-new
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+
+Wplacement-new=
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+
 ; skipping UrlSuffix for 'Wpmf-conversions' due to multiple URLs:
 ;   duplicate: 'gcc/Bound-member-functions.html#index-Wno-pmf-conversions-1'
 ;   duplicate: 'gcc/C_002b_002b-Dialect-Options.html#index-Wno-pmf-conversions'
@@ -723,11 +675,8 @@ UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-W
 Wprotocol
 UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-protocol)
 
-Wplacement-new
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
-
-Wplacement-new=
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-placement-new)
+Wrange-loop-construct
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-range-loop-construct)
 
 Wredundant-decls
 UrlSuffix(gcc/Warning-Options.html#index-Wno-redundant-decls)
@@ -735,12 +684,18 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-redundant-decls)
 Wredundant-move
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-move)
 
+Wredundant-tags
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-redundant-tags)
+
 Wregister
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-register)
 
 Wreorder
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-reorder)
 
+Wrestrict
+UrlSuffix(gcc/Warning-Options.html#index-Wno-restrict)
+
 Wreturn-mismatch
 UrlSuffix(gcc/Warning-Options.html#index-Wno-return-mismatch)
 
@@ -777,9 +732,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-count-overflow)
 Wshift-negative-value
 UrlSuffix(gcc/Warning-Options.html#index-Wno-shift-negative-value)
 
-Warith-conversion
-UrlSuffix(gcc/Warning-Options.html#index-Warith-conversion)
-
 Wsign-compare
 UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-compare)
 
@@ -792,30 +744,93 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-sign-conversion)
 Wsign-promo
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sign-promo)
 
-Wstrict-null-sentinel
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-strict-null-sentinel)
+Wsized-deallocation
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sized-deallocation)
 
-Wstrict-prototypes
-UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-prototypes)
+Wsizeof-array-div
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-div)
+
+Wsizeof-array-argument
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-array-argument)
+
+Wsizeof-pointer-div
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-div)
+
+Wsizeof-pointer-memaccess
+UrlSuffix(gcc/Warning-Options.html#index-Wno-sizeof-pointer-memaccess)
 
 Wstrict-aliasing=
 UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-aliasing)
 
+Wstrict-flex-arrays
+UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-flex-arrays)
+
+Wstrict-null-sentinel
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-strict-null-sentinel)
+
 Wstrict-overflow=
 UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-overflow)
 
+Wstrict-prototypes
+UrlSuffix(gcc/Warning-Options.html#index-Wno-strict-prototypes)
+
 Wstrict-selector-match
 UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-strict-selector-match)
 
+Wstring-compare
+UrlSuffix(gcc/Warning-Options.html#index-Wno-string-compare)
+
+Wstringop-overflow
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
+
+Wstringop-overflow=
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overflow)
+
+Wstringop-overread
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-overread)
+
+Wstringop-truncation
+UrlSuffix(gcc/Warning-Options.html#index-Wno-stringop-truncation)
+
+Wsubobject-linkage
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-subobject-linkage)
+
+Wsuggest-attribute=format
+UrlSuffix(gcc/Warning-Options.html#index-Wno-suggest-attribute_003dformat)
+
+Wsuggest-override
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-suggest-override)
+
+Wswitch
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch)
+
+Wswitch-default
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-default)
+
+Wswitch-enum
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-enum)
+
+Wswitch-bool
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-bool)
+
+Wswitch-outside-range
+UrlSuffix(gcc/Warning-Options.html#index-Wno-switch-outside-range)
+
 Wsync-nand
 UrlSuffix(gcc/Warning-Options.html#index-Wno-sync-nand)
 
 Wsystem-headers
 UrlSuffix(gcc/Warning-Options.html#index-Wno-system-headers)
 
+Wtemplates
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-templates)
+
 Wtautological-compare
 UrlSuffix(gcc/Warning-Options.html#index-Wno-tautological-compare)
 
+Wtemplate-id-cdtor
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-template-id-cdtor)
+
 Wterminate
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-terminate)
 
@@ -840,9 +855,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unicode)
 Wuninitialized
 UrlSuffix(gcc/Warning-Options.html#index-Wno-uninitialized)
 
-Wmaybe-uninitialized
-UrlSuffix(gcc/Warning-Options.html#index-Wmaybe-uninitialized)
-
 Wunknown-pragmas
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unknown-pragmas) LangUrlSuffix_D(gdc/Warnings.html#index-Wno-unknown-pragmas)
 
@@ -852,6 +864,12 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unsuffixed-float-constants)
 Wunused
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused)
 
+Wunused-const-variable
+UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
+
+Wunused-const-variable=
+UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
+
 Wunused-local-typedefs
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-local-typedefs)
 
@@ -864,14 +882,11 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
 Wunused-variable
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-variable)
 
-Wunused-const-variable
-UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
-
-Wunused-const-variable=
-UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
-
 Wuse-after-free=
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-use-after-free)
+UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
+
+Wuseless-cast
+UrlSuffix(gcc/Warning-Options.html#index-Wno-useless-cast)
 
 Wvariadic-macros
 UrlSuffix(gcc/Warning-Options.html#index-Wno-variadic-macros)
@@ -882,6 +897,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-varargs) LangUrlSuffix_D(gdc/Warnin
 Wvexing-parse
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-vexing-parse)
 
+Wvirtual-move-assign
+UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-move-assign)
+
 Wvla
 UrlSuffix(gcc/Warning-Options.html#index-Wno-vla)
 
@@ -900,9 +918,6 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-volatile-register-var)
 Wvirtual-inheritance
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-inheritance)
 
-Wvirtual-move-assign
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-virtual-move-assign)
-
 Wwrite-strings
 UrlSuffix(gcc/Warning-Options.html#index-Wno-write-strings)
 
@@ -912,20 +927,8 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-xor-used-as-pow)
 Wzero-as-null-pointer-constant
 UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-zero-as-null-pointer-constant)
 
-Wuseless-cast
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-useless-cast)
-
-Wsubobject-linkage
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-subobject-linkage)
-
-Welaborated-enum-base
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Welaborated-enum-base)
-
-Wduplicate-decl-specifier
-UrlSuffix(gcc/Warning-Options.html#index-Wduplicate-decl-specifier)
-
-Wrestrict
-UrlSuffix(gcc/Warning-Options.html#index-Wno-restrict)
+Wzero-length-bounds
+UrlSuffix(gcc/Warning-Options.html#index-Wzero-length-bounds)
 
 ; skipping UrlSuffix for 'ansi' due to multiple URLs:
 ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
diff --git a/gcc/common.opt.urls b/gcc/common.opt.urls
index 4cb2d7dc628e..db4354989fcc 100644
--- a/gcc/common.opt.urls
+++ b/gcc/common.opt.urls
@@ -64,10 +64,10 @@ Warray-bounds=
 UrlSuffix(gcc/Warning-Options.html#index-Warray-bounds)
 
 Wuse-after-free
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-use-after-free)
+UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
 
 Wuse-after-free=
-UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-use-after-free)
+UrlSuffix(gcc/Warning-Options.html#index-Wno-use-after-free)
 
 Wattributes
 UrlSuffix(gcc/Warning-Options.html#index-Wattributes)
diff --git a/gcc/config/avr/avr.opt.urls b/gcc/config/avr/avr.opt.urls
index 7af677199cc4..f38e67384ab1 100644
--- a/gcc/config/avr/avr.opt.urls
+++ b/gcc/config/avr/avr.opt.urls
@@ -12,6 +12,9 @@ UrlSuffix(gcc/AVR-Options.html#index-mgas-isr-prologues)
 mn-flash=
 UrlSuffix(gcc/AVR-Options.html#index-mn-flash)
 
+mskip-bug
+UrlSuffix(gcc/AVR-Options.html#index-mskip-bug)
+
 mrmw
 UrlSuffix(gcc/AVR-Options.html#index-mrmw)
 
@@ -42,9 +45,21 @@ UrlSuffix(gcc/AVR-Options.html#index-maccumulate-args)
 mstrict-X
 UrlSuffix(gcc/AVR-Options.html#index-mstrict-X)
 
+mflmap
+UrlSuffix(gcc/AVR-Options.html#index-mflmap)
+
+mrodata-in-ram
+UrlSuffix(gcc/AVR-Options.html#index-mrodata-in-ram)
+
 msp8
 UrlSuffix(gcc/AVR-Options.html#index-msp8)
 
+mfuse-add
+UrlSuffix(gcc/AVR-Options.html#index-mfuse-add)
+
+mfuse-add=
+UrlSuffix(gcc/AVR-Options.html#index-mfuse-add)
+
 Waddr-space-convert
 UrlSuffix(gcc/AVR-Options.html#index-Waddr-space-convert)
 
diff --git a/gcc/config/i386/i386.opt.urls b/gcc/config/i386/i386.opt.urls
index 9b988fd6996f..0f2015610aed 100644
--- a/gcc/config/i386/i386.opt.urls
+++ b/gcc/config/i386/i386.opt.urls
@@ -146,7 +146,7 @@ miamcu
 UrlSuffix(gcc/x86-Options.html#index-miamcu)
 
 mabi=
-UrlSuffix(gcc/x86-Options.html#index-mabi-6)
+UrlSuffix(gcc/x86-Options.html#index-mabi-7)
 
 mcall-ms2sysv-xlogues
 UrlSuffix(gcc/x86-Options.html#index-mcall-ms2sysv-xlogues)
@@ -597,6 +597,12 @@ UrlSuffix(gcc/x86-Options.html#index-msm4)
 mapxf
 UrlSuffix(gcc/x86-Options.html#index-mapxf)
 
+mapx-inline-asm-use-gpr32
+UrlSuffix(gcc/x86-Options.html#index-mapx-inline-asm-use-gpr32)
+
+mevex512
+UrlSuffix(gcc/x86-Options.html#index-mevex512)
+
 musermsr
 UrlSuffix(gcc/x86-Options.html#index-musermsr)
 
diff --git a/gcc/config/pru/pru.opt.urls b/gcc/config/pru/pru.opt.urls
index 373b02d5aedc..1f8a26a0db5f 100644
--- a/gcc/config/pru/pru.opt.urls
+++ b/gcc/config/pru/pru.opt.urls
@@ -13,5 +13,5 @@ mloop
 UrlSuffix(gcc/PRU-Options.html#index-mloop)
 
 mabi=
-UrlSuffix(gcc/PRU-Options.html#index-mabi-3)
+UrlSuffix(gcc/PRU-Options.html#index-mabi-4)
 
diff --git a/gcc/config/riscv/riscv.opt.urls b/gcc/config/riscv/riscv.opt.urls
index e1ab96658ea6..f40795866cfb 100644
--- a/gcc/config/riscv/riscv.opt.urls
+++ b/gcc/config/riscv/riscv.opt.urls
@@ -12,7 +12,7 @@ UrlSuffix(gcc/RISC-V-Options.html#index-mbranch-cost-4)
 ; skipping UrlSuffix for 'mplt' due to finding no URLs
 
 mabi=
-UrlSuffix(gcc/RISC-V-Options.html#index-mabi-4)
+UrlSuffix(gcc/RISC-V-Options.html#index-mabi-5)
 
 mpreferred-stack-boundary=
 UrlSuffix(gcc/RISC-V-Options.html#index-mpreferred-stack-boundary)
diff --git a/gcc/config/rs6000/rs6000.opt.urls b/gcc/config/rs6000/rs6000.opt.urls
index 28bf073c6cfd..c7c1cefe22cd 100644
--- a/gcc/config/rs6000/rs6000.opt.urls
+++ b/gcc/config/rs6000/rs6000.opt.urls
@@ -162,9 +162,6 @@ UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-msave-toc-indirect)
 mpower8-fusion
 UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-mpower8-fusion)
 
-mpower8-vector
-UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-mpower8-vector)
-
 mcrypto
 UrlSuffix(gcc/RS_002f6000-and-PowerPC-Options.html#index-mcrypto)
 
diff --git a/gcc/rust/lang.opt.urls b/gcc/rust/lang.opt.urls
index 9cf8987e7344..3d899ae97b0a 100644
--- a/gcc/rust/lang.opt.urls
+++ b/gcc/rust/lang.opt.urls
@@ -24,6 +24,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-const-variable)
 Wunused-result
 UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
 
+Winfinite-recursion
+UrlSuffix(gcc/Warning-Options.html#index-Winfinite-recursion)
+
 o
 UrlSuffix(gcc/Overall-Options.html#index-o)
  
David Malcolm March 4, 2024, 1:48 p.m. UTC | #10
On Sun, 2024-03-03 at 21:04 +0100, Mark Wielaard wrote:
> Hi,
> 
> On Sat, Feb 24, 2024 at 06:42:58PM +0100, Mark Wielaard wrote:
> > On Thu, Feb 22, 2024 at 11:57:50AM +0800, YunQiang Su wrote:
> > > Mark Wielaard <mark@klomp.org> 于2024年2月19日周一 06:58写道:
> > > > So, I did try the regenerate-opt-urls locally, and it did
> > > > generate the
> > > > attached diff. Which seems to show we really need this
> > > > automated.
> > > > 
> > > > Going over the diff. The -Winfinite-recursion in rust does
> > > > indeed seem
> > > > new.  As do the -mapx-inline-asm-use-gpr32 and mevex512 for
> > > > i386.  And
> > > > the avr options -mskip-bug, -mflmap and mrodata-in-ram.  The
> > > > change in
> > > > common.opt.urls for -Wuse-after-free comes from it being moved
> > > > from
> > > > c++ to the c-family. The changes in mips.opt.urls seem to come
> > > > from
> > > > commit 46df1369 "doc/invoke: Remove duplicate explicit-relocs
> > > > entry of
> > > > MIPS".
> > > 
> > > For MIPS, it's due to malformed patches to invoke.text.
> > > I will fix them.
> > 
> > Thanks. So with your commit 00bc8c0998d8 ("invoke.texi: Fix some
> > skipping UrlSuffix problem for MIPS") pushed now, the attached
> > patch
> > fixes the remaining issues.
> > 
> > Is this OK to push?

Thanks, looks good to me.

> Ping.
> 
> I have now regenerated the patch to also include the new avr mfuse-
> add
> change. It would be nice to get this committed so we can turn on the
> automatic checker.

Please go ahead with that.

Thanks
Dave