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!

Reply via email to