Patchwork [v2] spapr: Fix compiler warnings for some versions of gcc

login
register
mail settings
Submitter Stefan Weil
Date June 29, 2013, 1:47 p.m.
Message ID <1372513646-6053-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/255738/
State Accepted
Headers show

Comments

Stefan Weil - June 29, 2013, 1:47 p.m.
i686-w64-mingw32-gcc (GCC) 4.6.3 from Debian wheezy reports these warnings:

hw/ppc/spapr_hcall.c:188:1: warning:
 control reaches end of non-void function [-Wreturn-type]

hw/ppc/spapr_pci.c:454:1: warning:
 control reaches end of non-void function [-Wreturn-type]

Both warnings are fixed by using g_assert_not_reached instead of assert.
A second line with assert(0) in spapr_pci.c which did not raise a compiler
warning was modified, too, because g_assert_not_reached documents the
purpose of that statement and is not removed in release builds.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---

This patch is an improved version which replaces
http://patchwork.ozlabs.org/patch/253939/ and
http://patchwork.ozlabs.org/patch/253938/.

Patch http://patchwork.ozlabs.org/patch/253937/ of my
previous series is still applicable. Please consider
applying it to the ppc queue.

I suggest replacing assert(0) by g_assert_not_reached()
in the rest of QEMU's code, too. If there is consensus,
I'll send a patch which does this.

Replacing assert by g_assert would also make sense with a
few exceptions in time critical code (TCG, TCI).

Regards
Stefan W.

 hw/ppc/spapr_hcall.c |    2 +-
 hw/ppc/spapr_pci.c   |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
David Gibson - June 29, 2013, 2:28 p.m.
On Sat, Jun 29, 2013 at 03:47:26PM +0200, Stefan Weil wrote:
> i686-w64-mingw32-gcc (GCC) 4.6.3 from Debian wheezy reports these warnings:
> 
> hw/ppc/spapr_hcall.c:188:1: warning:
>  control reaches end of non-void function [-Wreturn-type]
> 
> hw/ppc/spapr_pci.c:454:1: warning:
>  control reaches end of non-void function [-Wreturn-type]
> 
> Both warnings are fixed by using g_assert_not_reached instead of assert.
> A second line with assert(0) in spapr_pci.c which did not raise a compiler
> warning was modified, too, because g_assert_not_reached documents the
> purpose of that statement and is not removed in release builds.
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>

Makes sense to me.

Acked-by: David Gibson <david@gibson.dropbear.id.au>
Paolo Bonzini - July 1, 2013, 10:50 a.m.
Il 29/06/2013 15:47, Stefan Weil ha scritto:
> i686-w64-mingw32-gcc (GCC) 4.6.3 from Debian wheezy reports these warnings:
> 
> hw/ppc/spapr_hcall.c:188:1: warning:
>  control reaches end of non-void function [-Wreturn-type]
> 
> hw/ppc/spapr_pci.c:454:1: warning:
>  control reaches end of non-void function [-Wreturn-type]
> 
> Both warnings are fixed by using g_assert_not_reached instead of assert.
> A second line with assert(0) in spapr_pci.c which did not raise a compiler
> warning was modified, too, because g_assert_not_reached documents the
> purpose of that statement and is not removed in release builds.
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
> 
> This patch is an improved version which replaces
> http://patchwork.ozlabs.org/patch/253939/ and
> http://patchwork.ozlabs.org/patch/253938/.
> 
> Patch http://patchwork.ozlabs.org/patch/253937/ of my
> previous series is still applicable. Please consider
> applying it to the ppc queue.
> 
> I suggest replacing assert(0) by g_assert_not_reached()
> in the rest of QEMU's code, too. If there is consensus,
> I'll send a patch which does this.

Makes sense, thanks!

> Replacing assert by g_assert would also make sense with a
> few exceptions in time critical code (TCG, TCI).

Note that most Linux distros is never using -DNDEBUG (in general, not
just for QEMU).

Paolo


> Regards
> Stefan W.
> 
>  hw/ppc/spapr_hcall.c |    2 +-
>  hw/ppc/spapr_pci.c   |    4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> index 8f0b7e8..93af469 100644
> --- a/hw/ppc/spapr_hcall.c
> +++ b/hw/ppc/spapr_hcall.c
> @@ -184,7 +184,7 @@ static target_ulong h_remove(PowerPCCPU *cpu, sPAPREnvironment *spapr,
>          return H_HARDWARE;
>      }
>  
> -    assert(0);
> +    g_assert_not_reached();
>  }
>  
>  #define H_BULK_REMOVE_TYPE             0xc000000000000000ULL
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index 04e8362..4b69b04 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -450,7 +450,7 @@ static uint64_t spapr_io_read(void *opaque, hwaddr addr,
>      case 4:
>          return cpu_inl(addr);
>      }
> -    assert(0);
> +    g_assert_not_reached();
>  }
>  
>  static void spapr_io_write(void *opaque, hwaddr addr,
> @@ -467,7 +467,7 @@ static void spapr_io_write(void *opaque, hwaddr addr,
>          cpu_outl(addr, data);
>          return;
>      }
> -    assert(0);
> +    g_assert_not_reached();
>  }
>  
>  static const MemoryRegionOps spapr_io_ops = {
>
Alexander Graf - July 2, 2013, 12:42 p.m.
On 06/29/2013 03:47 PM, Stefan Weil wrote:
> i686-w64-mingw32-gcc (GCC) 4.6.3 from Debian wheezy reports these warnings:
>
> hw/ppc/spapr_hcall.c:188:1: warning:
>   control reaches end of non-void function [-Wreturn-type]
>
> hw/ppc/spapr_pci.c:454:1: warning:
>   control reaches end of non-void function [-Wreturn-type]
>
> Both warnings are fixed by using g_assert_not_reached instead of assert.
> A second line with assert(0) in spapr_pci.c which did not raise a compiler
> warning was modified, too, because g_assert_not_reached documents the
> purpose of that statement and is not removed in release builds.
>
> Signed-off-by: Stefan Weil<sw@weilnetz.de>

Thanks, applied to ppc-next.


Alex

Patch

diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index 8f0b7e8..93af469 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -184,7 +184,7 @@  static target_ulong h_remove(PowerPCCPU *cpu, sPAPREnvironment *spapr,
         return H_HARDWARE;
     }
 
-    assert(0);
+    g_assert_not_reached();
 }
 
 #define H_BULK_REMOVE_TYPE             0xc000000000000000ULL
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 04e8362..4b69b04 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -450,7 +450,7 @@  static uint64_t spapr_io_read(void *opaque, hwaddr addr,
     case 4:
         return cpu_inl(addr);
     }
-    assert(0);
+    g_assert_not_reached();
 }
 
 static void spapr_io_write(void *opaque, hwaddr addr,
@@ -467,7 +467,7 @@  static void spapr_io_write(void *opaque, hwaddr addr,
         cpu_outl(addr, data);
         return;
     }
-    assert(0);
+    g_assert_not_reached();
 }
 
 static const MemoryRegionOps spapr_io_ops = {