Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn

From: Arnd Bergmann
Date: Mon Feb 05 2018 - 05:16:03 EST


On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin
<aryabinin@xxxxxxxxxxxxx> wrote:
>
>
> On 02/02/2018 06:47 PM, Arnd Bergmann wrote:
>> gcc-8 complains about the prototype for this function:
>>
>> lib/ubsan.c:432:1: error: ignoring attribute 'noreturn' in declaration of a built-in function '__ubsan_handle_builtin_unreachable' because it conflicts with attribute 'const' [-Werror=attributes]
>>
>
> That's actually a bug in GCC. In GCC __ubsan_handle_builtin_unreachable declared
> with 'noreturn' and 'const' attributes:
>
> DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE,
> "__ubsan_handle_builtin_unreachable",
> BT_FN_VOID_PTR,
> ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST)
>
>
> But const attribute doesn't make any sense for function that returns void or doesn't return at all.
> Given that gcc-8 has not released yet, it would be better to fix this bug there.

Ok. Should I open a gcc bug, or will you take care of it?

Arnd