MPS issue job004076

TitleMPS does not compile with GCC 7
Statusclosed
Priorityessential
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionWith gcc 7.3.0:

$ make -f xci6gc.gmk VARIETY=cool
In file included from tree.h:13:0,
                 from splay.h:13,
                 from splay.c:18:
splay.c: In function 'SplayTreeInsert':
check.h:191:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
     mps_lib_assert_fail(__FILE__, __LINE__, "unreachable code"); \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
splay.c:755:5: note: in expansion of macro 'NOTREACHED'
     NOTREACHED;
     ^~~~~~~~~~
splay.c:757:3: note: here
    case CompareEQUAL: /* duplicate node */
    ^~~~
In file included from tree.h:13:0,
                 from splay.h:13,
                 from splay.c:18:
splay.c: In function 'SplayTreeNeighbours':
check.h:191:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
     mps_lib_assert_fail(__FILE__, __LINE__, "unreachable code"); \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
splay.c:932:5: note: in expansion of macro 'NOTREACHED'
     NOTREACHED;
     ^~~~~~~~~~
splay.c:934:3: note: here
    case CompareEQUAL:
    ^~~~
In file included from tree.h:13:0,
                 from splay.h:13,
                 from splay.c:18:
splay.c: In function 'SplayTreeNext':
check.h:191:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
     mps_lib_assert_fail(__FILE__, __LINE__, "unreachable code"); \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
splay.c:1007:5: note: in expansion of macro 'NOTREACHED'
     NOTREACHED;
     ^~~~~~~~~~
splay.c:1009:3: note: here
    case CompareLESS:
    ^~~~
qs.c: In function 'scan1':
qs.c:417:19: error: this statement may fall through [-Werror=implicit-fallthrough=]
        cell->value = addr;
        ~~~~~~~~~~~~^~~~~~
qs.c:420:5: note: here
     case QSInt:
     ^~~~
AnalysisThe warning comes from -Wextra which sets -Wimplicit-fallthrough=3 [1] which matches a comment saying /* fall through */ (or various variations) but neither /* defensive fall through */ (as in splay.c) or /* fall */ (as in qs.c).
How foundmanual_test
Evidence[1] http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
Created byGareth Rees
Created on2018-06-21 17:18:54
Last modified byGareth Rees
Last modified on2018-08-28 11:16:21
History2018-06-21 GDR Created.

Fixes

Change Effect Date User Description
194064 closed 2018-06-21 17:38:27 Gareth Rees In GCC 7.3, -Wextra sets -Wimplicit-fallthough=3, which is rather strict about the format of the "fall through" comment.