Re: [PATCH] asm-generic: bug.h: add unreachable() in BUG() for CONFIG_BUG not set
From: Randy Dunlap <hidden>
Date: 2021-10-17 19:17:36
Also in:
linux-m68k, lkml
From: Randy Dunlap <hidden>
Date: 2021-10-17 19:17:36
Also in:
linux-m68k, lkml
On 10/17/21 12:09 PM, Arnd Bergmann wrote:
On Sun, Oct 17, 2021 at 7:49 PM Randy Dunlap [off-list ref] wrote:quoted
When CONFIG_BUG is not set/enabled, there is a warning on ARCH=m68k, gcc version 11.1.0-nolibc from Arnd's crosstools: ../fs/afs/dir.c: In function 'afs_dir_set_page_dirty': ../fs/afs/dir.c:51:1: error: no return statement in function returning non-void [-Werror=return-type] Adding "unreachable()" in the BUG() macro silences the warning.No, I don't think this is the right solution:quoted
-#define BUG() do {} while (1) +#define BUG() do {unreachable();} while (1)Marking this code unreachable() means the compiler is free to assume any code path leading here will never be entered, which leads to additional undefined behavior and other warnings rather than just hanging reproducibly. The endless loop here should normally be sufficient to tell the compiler that the function never returns, so it sounds like a problem in gcc for m68k.
Sounds likely.
Did you see any other issues like this one on m68k, or the same one on another architecture?
No and no. thanks. -- ~Randy