lkml.org 
[lkml]   [2018]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
On Wed,  7 Nov 2018 17:45:16 +0300 Andrey Ryabinin <aryabinin@virtuozzo.com> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> 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]
>
> This is actually a GCC's bug. In GCC internals
> __ubsan_handle_builtin_unreachable() declared with both 'noreturn' and
> 'const' attributes instead of only 'noreturn':
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84210
>
> Workaround this by removing the noreturn attribute.
>
> ...
>
> --- a/lib/ubsan.c
> +++ b/lib/ubsan.c
> @@ -427,8 +427,7 @@ void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data,
> EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
>
>
> -void __noreturn
> -__ubsan_handle_builtin_unreachable(struct unreachable_data *data)
> +void __ubsan_handle_builtin_unreachable(struct unreachable_data *data)
> {
> unsigned long flags;

This code has been here since 2016 and presumably people will want to
build older kernels with newer gcc's. So I'll add cc:stable, OK?

\
 
 \ /
  Last update: 2018-11-07 21:55    [W:0.618 / U:0.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site