[glib/ebassi/gcc-12-fixes: 1/2] Fix array-bounds compiler warnings with GCC 12




commit 903c004b37d723972b07ecbdd880ae0d2c8b767d
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Fri Sep 2 12:46:57 2022 +0100

    Fix array-bounds compiler warnings with GCC 12
    
    GCC isn't smart enough to recognise that the assertion on the size of
    N_PROPERTIES also affects the assertion on the GParamSpec array access,
    so we need to coalesce the two checks into one to avoid an array-bounds
    compiler warning.

 gobject/tests/notify-init.c  | 6 ++----
 gobject/tests/notify-init2.c | 6 ++----
 gobject/tests/properties.c   | 6 ++----
 3 files changed, 6 insertions(+), 12 deletions(-)
---
diff --git a/gobject/tests/notify-init.c b/gobject/tests/notify-init.c
index 99c628593b..17500cbe96 100644
--- a/gobject/tests/notify-init.c
+++ b/gobject/tests/notify-init.c
@@ -124,8 +124,7 @@ test_object_set_property (GObject *gobject,
   TestObject *tobj = (TestObject *) gobject;
 
   g_assert_cmpint (prop_id, !=, 0);
-  g_assert_cmpint (prop_id, !=, N_PROPERTIES);
-  g_assert (pspec == properties[prop_id]);
+  g_assert_true (prop_id < N_PROPERTIES && pspec == properties[prop_id]);
 
   switch ((TestObjectProperty)prop_id)
     {
@@ -159,8 +158,7 @@ test_object_get_property (GObject *gobject,
   TestObject *tobj = (TestObject *) gobject;
 
   g_assert_cmpint (prop_id, !=, 0);
-  g_assert_cmpint (prop_id, !=, N_PROPERTIES);
-  g_assert (pspec == properties[prop_id]);
+  g_assert_true (prop_id < N_PROPERTIES && pspec == properties[prop_id]);
 
   switch ((TestObjectProperty)prop_id)
     {
diff --git a/gobject/tests/notify-init2.c b/gobject/tests/notify-init2.c
index ab6677c1df..c3ebae002c 100644
--- a/gobject/tests/notify-init2.c
+++ b/gobject/tests/notify-init2.c
@@ -132,8 +132,7 @@ test_object_set_property (GObject *gobject,
   TestObject *tobj = (TestObject *) gobject;
 
   g_assert_cmpint (prop_id, !=, 0);
-  g_assert_cmpint (prop_id, !=, N_PROPERTIES);
-  g_assert (pspec == properties[prop_id]);
+  g_assert_true (prop_id < N_PROPERTIES && pspec == properties[prop_id]);
 
   switch ((TestObjectProperty)prop_id)
     {
@@ -167,8 +166,7 @@ test_object_get_property (GObject *gobject,
   TestObject *tobj = (TestObject *) gobject;
 
   g_assert_cmpint (prop_id, !=, 0);
-  g_assert_cmpint (prop_id, !=, N_PROPERTIES);
-  g_assert (pspec == properties[prop_id]);
+  g_assert_true (prop_id < N_PROPERTIES && pspec == properties[prop_id]);
 
   switch ((TestObjectProperty)prop_id)
     {
diff --git a/gobject/tests/properties.c b/gobject/tests/properties.c
index da467c2fee..e30a2705b8 100644
--- a/gobject/tests/properties.c
+++ b/gobject/tests/properties.c
@@ -104,8 +104,7 @@ test_object_set_property (GObject *gobject,
   TestObject *tobj = (TestObject *) gobject;
 
   g_assert_cmpint (prop_id, !=, 0);
-  g_assert_cmpint (prop_id, !=, N_PROPERTIES);
-  g_assert (pspec == properties[prop_id]);
+  g_assert_true (prop_id < N_PROPERTIES && pspec == properties[prop_id]);
 
   switch (prop_id)
     {
@@ -139,8 +138,7 @@ test_object_get_property (GObject *gobject,
   TestObject *tobj = (TestObject *) gobject;
 
   g_assert_cmpint (prop_id, !=, 0);
-  g_assert_cmpint (prop_id, !=, N_PROPERTIES);
-  g_assert (pspec == properties[prop_id]);
+  g_assert_true (prop_id < N_PROPERTIES && pspec == properties[prop_id]);
 
   switch (prop_id)
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]