Messages in this thread | | | Date | Wed, 7 Nov 2018 12:55:17 -0800 | From | Andrew Morton <> | Subject | Re: [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?
| |