Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
On 11/03/2018 12:27 AM, Olof Johansson wrote: > On Mon, Feb 5, 2018 at 2:31 AM Andrey Ryabinin > wrote: >> >> On 02/05/2018 01:15 PM, Arnd Bergmann wrote: >>> On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin >>> 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 >
Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
On Mon, Feb 5, 2018 at 2:31 AM Andrey Ryabinin wrote: > > On 02/05/2018 01:15 PM, Arnd Bergmann wrote: > > On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin > > 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? -Olof
Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
On 02/05/2018 01:15 PM, Arnd Bergmann wrote: > On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin > 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 >Arnd >
Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin 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
Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
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.
[PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
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 removes the noreturn attribute. Signed-off-by: Arnd Bergmann --- lib/ubsan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ubsan.c b/lib/ubsan.c index 59fee96c29a0..aa817d79c47c 100644 --- a/lib/ubsan.c +++ b/lib/ubsan.c @@ -427,7 +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 +void __ubsan_handle_builtin_unreachable(struct unreachable_data *data) { unsigned long flags; -- 2.9.0