Hi! On Tue, Jan 24, 2017 at 10:59:38AM +0100, Sebastian Huber wrote: ... > mulkf3-sw.c:48:3: note: in expansion of macro ‘FP_MUL_Q’ > FP_MUL_Q (R, A, B); > ^~~~~~~~ > /home/sh/gcc-git/libgcc/soft-fp/op-common.h:913:10: warning: this statement > may fall through [-Wimplicit-fallthrough=] > R##_s = Y##_s; \ > /home/sh/gcc-git/libgcc/soft-fp/quad.h:308:29: note: in expansion of macro > ‘_FP_MUL’ > # define FP_MUL_Q(R, X, Y) _FP_MUL (Q, 2, R, X, Y) > ^~~~~~~ > mulkf3-sw.c:48:3: note: in expansion of macro ‘FP_MUL_Q’ > FP_MUL_Q (R, A, B); > ^~~~~~~~ > /home/sh/gcc-git/libgcc/soft-fp/op-common.h:915:2: note: here > case _FP_CLS_COMBINE (FP_CLS_NORMAL, FP_CLS_INF): \ > ^ > /home/sh/gcc-git/libgcc/soft-fp/quad.h:308:29: note: in expansion of macro > ‘_FP_MUL’ > # define FP_MUL_Q(R, X, Y) _FP_MUL (Q, 2, R, X, Y) > ^~~~~~~ > mulkf3-sw.c:48:3: note: in expansion of macro ‘FP_MUL_Q’ > FP_MUL_Q (R, A, B); > ^~~~~~~ > > I don't know this code enough to fix them.
The following patch fixes the warnings (all the 5 fallthrus are intentional) for me on x86_64-linux. But I assume it needs to go into glibc first, right? 2017-01-24 Jakub Jelinek <ja...@redhat.com> * soft-fp/op-common.h (_FP_MUL, _FP_FMA, _FP_DIV): Add /* FALLTHRU */ comments. --- libgcc/soft-fp/op-common.h.jj 2016-08-17 10:22:22.000000000 +0200 +++ libgcc/soft-fp/op-common.h 2017-01-24 11:18:40.284703176 +0100 @@ -1,5 +1,5 @@ /* Software floating-point emulation. Common operations. - Copyright (C) 1997-2016 Free Software Foundation, Inc. + Copyright (C) 1997-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (r...@cygnus.com), Jakub Jelinek (j...@ultra.linux.cz), @@ -898,6 +898,7 @@ case _FP_CLS_COMBINE (FP_CLS_NAN, FP_CLS_INF): \ case _FP_CLS_COMBINE (FP_CLS_NAN, FP_CLS_ZERO): \ R##_s = X##_s; \ + /* FALLTHRU */ \ \ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_INF): \ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_NORMAL): \ @@ -911,6 +912,7 @@ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_NAN): \ case _FP_CLS_COMBINE (FP_CLS_ZERO, FP_CLS_NAN): \ R##_s = Y##_s; \ + /* FALLTHRU */ \ \ case _FP_CLS_COMBINE (FP_CLS_NORMAL, FP_CLS_INF): \ case _FP_CLS_COMBINE (FP_CLS_NORMAL, FP_CLS_ZERO): \ @@ -1063,6 +1065,7 @@ case _FP_CLS_COMBINE (FP_CLS_NAN, FP_CLS_INF): \ case _FP_CLS_COMBINE (FP_CLS_NAN, FP_CLS_ZERO): \ _FP_FMA_T##_s = X##_s; \ + /* FALLTHRU */ \ \ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_INF): \ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_NORMAL): \ @@ -1076,6 +1079,7 @@ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_NAN): \ case _FP_CLS_COMBINE (FP_CLS_ZERO, FP_CLS_NAN): \ _FP_FMA_T##_s = Y##_s; \ + /* FALLTHRU */ \ \ case _FP_CLS_COMBINE (FP_CLS_NORMAL, FP_CLS_INF): \ case _FP_CLS_COMBINE (FP_CLS_NORMAL, FP_CLS_ZERO): \ @@ -1198,6 +1202,7 @@ \ case _FP_CLS_COMBINE (FP_CLS_NORMAL, FP_CLS_ZERO): \ FP_SET_EXCEPTION (FP_EX_DIVZERO); \ + /* FALLTHRU */ \ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_ZERO): \ case _FP_CLS_COMBINE (FP_CLS_INF, FP_CLS_NORMAL): \ R##_c = FP_CLS_INF; \ Jakub