This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FIx riscv port building with the trunk


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.cheng@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.cheng@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 <palmer@dabbelt.com> wrote:
>> On Mon, 13 Mar 2017 10:50:28 PDT (-0700), law@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  <law@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!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]