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

2018-11-07 Thread Andrey Ryabinin



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

2018-11-02 Thread Olof Johansson
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

2018-02-05 Thread Andrey Ryabinin


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

2018-02-05 Thread Arnd Bergmann
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

2018-02-05 Thread Andrey Ryabinin


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

2018-02-02 Thread Arnd Bergmann
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