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

From: Andrey Ryabinin
Date: Wed Nov 07 2018 - 09:44:43 EST




On 11/03/2018 12:27 AM, Olof Johansson wrote:
> On Mon, Feb 5, 2018 at 2:31 AM Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> wrote:
>>
>> On 02/05/2018 01:15 PM, Arnd Bergmann wrote:
>>> 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?
>>>
>>
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84210
>
> 8.2.0 still shows this, and there's been no movement on that bug. How
> about we pick up this patch until it's been resolved?
>

Sure, I'll add info about GCC bug in changelog and resend the patch.

>
> -Olof
>