diff mbox series

[19/39] hw/pci: replace assert(false) with g_assert_not_reached()

Message ID 20240910221606.1817478-20-pierrick.bouvier@linaro.org
State New
Headers show
Series Use g_assert_not_reached instead of (g_)assert(0, false) | expand

Commit Message

Pierrick Bouvier Sept. 10, 2024, 10:15 p.m. UTC
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 hw/pci/pci-stub.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Philippe Mathieu-Daudé Sept. 11, 2024, 5:50 a.m. UTC | #1
Hi Pierrick,

On 11/9/24 00:15, Pierrick Bouvier wrote:
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
>   hw/pci/pci-stub.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c
> index f0508682d2b..c6950e21bd4 100644
> --- a/hw/pci/pci-stub.c
> +++ b/hw/pci/pci-stub.c
> @@ -46,13 +46,13 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
>   /* kvm-all wants this */
>   MSIMessage pci_get_msi_message(PCIDevice *dev, int vector)
>   {
> -    g_assert(false);
> +    g_assert_not_reached();
>       return (MSIMessage){};

The tail of this series remove the unreachable 'break' lines.
Why 'return' lines aren't problematic? Is that a GCC TSan bug?

>   }
>   
>   uint16_t pci_requester_id(PCIDevice *dev)
>   {
> -    g_assert(false);
> +    g_assert_not_reached();
>       return 0;
>   }
>
Pierrick Bouvier Sept. 11, 2024, 3:29 p.m. UTC | #2
On 9/10/24 22:50, Philippe Mathieu-Daudé wrote:
> Hi Pierrick,
> 
> On 11/9/24 00:15, Pierrick Bouvier wrote:
>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
>> ---
>>    hw/pci/pci-stub.c | 4 ++--
>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c
>> index f0508682d2b..c6950e21bd4 100644
>> --- a/hw/pci/pci-stub.c
>> +++ b/hw/pci/pci-stub.c
>> @@ -46,13 +46,13 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
>>    /* kvm-all wants this */
>>    MSIMessage pci_get_msi_message(PCIDevice *dev, int vector)
>>    {
>> -    g_assert(false);
>> +    g_assert_not_reached();
>>        return (MSIMessage){};
> 
> The tail of this series remove the unreachable 'break' lines.
> Why 'return' lines aren't problematic? Is that a GCC TSan bug?
> 

It's related to how control flow analysis works, but I don't have a 
deeper answer. I reported the issue with 'break' for gcc and the same 
bug was created several years ago, so it was just marked as duplicate.

I'll clean the extra return with have though, as part of v2.

>>    }
>>    
>>    uint16_t pci_requester_id(PCIDevice *dev)
>>    {
>> -    g_assert(false);
>> +    g_assert_not_reached();
>>        return 0;
>>    }
>>    
>
diff mbox series

Patch

diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c
index f0508682d2b..c6950e21bd4 100644
--- a/hw/pci/pci-stub.c
+++ b/hw/pci/pci-stub.c
@@ -46,13 +46,13 @@  void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
 /* kvm-all wants this */
 MSIMessage pci_get_msi_message(PCIDevice *dev, int vector)
 {
-    g_assert(false);
+    g_assert_not_reached();
     return (MSIMessage){};
 }
 
 uint16_t pci_requester_id(PCIDevice *dev)
 {
-    g_assert(false);
+    g_assert_not_reached();
     return 0;
 }