From: Paul Eggert Date: Sun, 19 Mar 2023 04:53:12 +0000 (-0700) Subject: dfa: pacify Oracle Solaris Studio 12.6 X-Git-Tag: v1.0~1626 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=83006fa8c9a55cd1e6897f46c0815f7edcafd84e;p=gnulib.git dfa: pacify Oracle Solaris Studio 12.6 Without this patch, the compiler complains “statement not reached”. * lib/dfa.c (lex): Refactor to omit unreachable statement. --- diff --git a/ChangeLog b/ChangeLog index 00f18855bd..7d7f85a54b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2023-03-18 Paul Eggert + dfa: pacify Oracle Solaris Studio 12.6 + Without this patch, the compiler complains “statement not reached”. + * lib/dfa.c (lex): Refactor to omit unreachable statement. + Update MODULES.html.sh * MODULES.html.sh: Add some recently-added modules. This is by no means a complete update. I needed to point diff --git a/lib/dfa.c b/lib/dfa.c index 20502a802f..d54aab40fd 100644 --- a/lib/dfa.c +++ b/lib/dfa.c @@ -1202,8 +1202,13 @@ lex (struct dfa *dfa) On the plus side, this avoids having a duplicate of the main switch inside the backslash case. On the minus side, it means that just about every case tests the backslash flag. */ - for (int i = 0; i < 2; ++i) + for (int i = 0; ; i++) { + /* This loop should consume at most a backslash and some other + character. */ + if (2 <= i) + abort (); + if (! dfa->lex.left) return dfa->lex.lasttok = END; int c = fetch_wc (dfa); @@ -1591,11 +1596,6 @@ lex (struct dfa *dfa) return dfa->lex.lasttok = c; } } - - /* The above loop should consume at most a backslash - and some other character. */ - abort (); - return END; /* keeps pedantic compilers happy. */ } static void