Thanks Kito -- this had broken my build too, I'd just gotten distracted by another bug and had forgotten to commit it. It's now in as
commit 6ca48c85b40db96f01d49f37afb19100b4a6b75b Author: palmer <palmer@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue Mar 14 03:51:24 2017 +0000 Use gcc_fallthrough() instead of __attribute__((fallthrough) Without this my build breaks on older compilers like GCC-5.4. gcc/ChangeLog: 2017-03-13 Kito Cheng <kito.ch...@gmail.com> * config/riscv/riscv.c (riscv_emit_float_compare>: Use gcc_fallthrough() instead of __attribute__((fallthrough)); git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246116 138bc75d-0d04-0410-961f-82ee72b054a4 On Mon, 13 Mar 2017 20:00:36 PDT (-0700), kito.ch...@gmail.com wrote: > Hi Jeff: > > It's make older gcc version can't build RISC-V port, how about use > gcc_fallthrough instead? > > diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c > index f4c1f23..d1af07f5 100644 > --- a/gcc/config/riscv/riscv.c > +++ b/gcc/config/riscv/riscv.c > @@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code, > rtx *op0, rtx *op1) > > case UNLT: > std::swap (cmp_op0, cmp_op1); > - __attribute__((fallthrough)); > + gcc_fallthrough (); > > UNORDERED_COMPARISON(UNGT, le) > > case UNLE: > std::swap (cmp_op0, cmp_op1); > - __attribute__((fallthrough)); > + gcc_fallthrough (); > > UNORDERED_COMPARISON(UNGE, lt) > #undef UNORDERED_COMPARISON > > On Tue, Mar 14, 2017 at 2:22 AM, Palmer Dabbelt <pal...@dabbelt.com> wrote: >> On Mon, 13 Mar 2017 10:50:28 PDT (-0700), l...@redhat.com wrote: >>> >>> RISCV targets were failing to build due to implicit-fallthru warnings. >>> >>> This changes comments which indicated expected fallthru to use the >>> attribute and the port builds again. I assume something about the use >>> of the cpp macro is causing the comment to not have the intended effect. >>> I didn't dig into that. Nor did I try to change all the fallthru >>> comments to use the attribute -- just the two that implicit-fallthru was >>> complaining about. >>> >>> Verified that after this patch the two riscv targets build. Installed >>> on the trunk. >>> >>> Jeff >>> >>> commit 448373f1f2912228dc72605fb6f3343fd57023ee >>> Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> >>> Date: Mon Mar 13 17:49:40 2017 +0000 >>> >>> * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru >>> attribute rather than comments. >>> >>> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246101 >>> 138bc75d-0d04-0410-961f-82ee72b054a4 >>> >>> diff --git a/gcc/ChangeLog b/gcc/ChangeLog >>> index 124dca3..e863cdf 100644 >>> --- a/gcc/ChangeLog >>> +++ b/gcc/ChangeLog >>> @@ -1,5 +1,8 @@ >>> 2017-03-13 Jeff Law <l...@redhat.com> >>> >>> + * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru >>> + attribute rather than comments. >>> + >>> * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to >>> match_scratch operand is highest. >>> >>> diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c >>> index 89567f7..e5044ba 100644 >>> --- a/gcc/config/riscv/riscv.c >>> +++ b/gcc/config/riscv/riscv.c >>> @@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code, rtx >>> *op0, rtx *op1) >>> >>> case UNLT: >>> std::swap (cmp_op0, cmp_op1); >>> - /* Fall through. */ >>> + __attribute__((fallthrough)); >>> >>> UNORDERED_COMPARISON(UNGT, le) >>> >>> case UNLE: >>> std::swap (cmp_op0, cmp_op1); >>> - /* Fall through. */ >>> + __attribute__((fallthrough)); >>> >>> UNORDERED_COMPARISON(UNGE, lt) >>> #undef UNORDERED_COMPARISON >> >> Thanks!