Subject: bug#41348: emacs compilation with clang10 fails in the file lib-src/etags.c

From: Narayanan Nellayi <[email-masked]>
Date: Sun, 17 May 2020 21:23:46 +0530

Hi,

The following patch also works; this is in case removal of a "break"
statement requires either a "FALLTHROUGH" or a"goto" statement. The
previous patch was to just comment out FALLTHROUGH and the other
alternative is to replace FALLTHROUGH with a goto, though using goto
to jump to the next statement looks odd.

> diff --git a/lib-src/etags.c b/lib-src/etags.c
> index eee2c59626..b3d4642505 100644
> --- a/lib-src/etags.c
> +++ b/lib-src/etags.c
> @@ -4196,7 +4196,8 @@ C_entries (int c_ext, FILE *inf)
>               objdef = omethodsign;
>               break;
>             }
> -         FALLTHROUGH;
> +         // FALLTHROUGH;
> +         goto resetfvdef;
>         resetfvdef:
>         case '#': case '~': case '&': case '%': case '/':
>         case '|': case '^': case '!': case '.': case '?':

Options I used to build emacs:

./configure 'CFLAGS=-Ofast -march=skylake -funroll-loops
-fno-finite-math-only' CC=clang   \
            --with-mailutils --with-sound=yes --with-x-toolkit=gtk3
                                               \
            --with-gconf --with-modules --with-file-notification=yes
                                               \
            --with-xwidgets --with-xaw3d=yes --with-libsystemd=yes
                                         \
            --with-imagemagick=yes

Regards
Narayanan