[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/4] pc-bios/s390-ccw: Silence warning from Clang by marking
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 1/4] pc-bios/s390-ccw: Silence warning from Clang by marking panic() as noreturn |
Date: |
Sun, 2 May 2021 20:57:02 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 5/2/21 7:48 PM, Thomas Huth wrote:
> When compiling the s390-ccw bios with Clang, the compiler emits a warning:
>
> pc-bios/s390-ccw/main.c:210:5: warning: variable 'found' is used
> uninitialized
> whenever switch default is taken [-Wsometimes-uninitialized]
> default:
> ^~~~~~~
> pc-bios/s390-ccw/main.c:214:16: note: uninitialized use occurs here
> IPL_assert(found, "Boot device not found\n");
> ^~~~~
>
> It's a false positive, it only happens because Clang is not smart enough
> to see that the panic() function in the "default:" case can never return.
>
> Anyway, let's explicitely mark panic() with "noreturn" to shut up the
> warning.
Why not simply initialize the variable instead?
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> pc-bios/s390-ccw/s390-ccw.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
> index 6cd92669e9..79db69ff54 100644
> --- a/pc-bios/s390-ccw/s390-ccw.h
> +++ b/pc-bios/s390-ccw/s390-ccw.h
> @@ -89,6 +89,7 @@ bool menu_is_enabled_enum(void);
>
> #define MAX_BOOT_ENTRIES 31
>
> +__attribute__ ((__noreturn__))
> static inline void panic(const char *string)
> {
> sclp_print(string);
>