fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ggsn/+/31511 )


Change subject: gtp: use OSMO_ASSERT() in gtp_new()
......................................................................

gtp: use OSMO_ASSERT() in gtp_new()

When using built-in static_assert() [1], gcc v12.2.1 fails:

In file included from gsn.c:27:
gsn.c: In function 'gtp_new':
gsn.c:444:54: error: expression in static assertion is not constant
  444 |         osmo_static_assert(gtp_T_defs[0].default_val != 0, 
first_default_val_not_zero);
      |                                                      ^

The reason is likely that gtp_T_defs[] is not const, so it cannot
be assert()ed statically.  With the current osmo_static_assert()
implementation, this assert does nothing.  One can change the
gtp_T_defs[0].default_val to 0 and the code will still compile.

Change-Id: Ia8af1736b63d501661046fe70befe5bbabc1045a
Related: [1] libosmocore.git I5ca34bc14c05e8c38c721d7df33feb1c6c41c76e
---
M gtp/gsn.c
1 file changed, 24 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/11/31511/1

diff --git a/gtp/gsn.c b/gtp/gsn.c
index 9776b28..8b3ea3a 100644
--- a/gtp/gsn.c
+++ b/gtp/gsn.c
@@ -441,7 +441,7 @@
        /* Initialize timers: */
        (*gsn)->tdef = gtp_T_defs;
        /* Small hack to properly reset tdef for old clients not using the 
tdef_group: */
-       osmo_static_assert(gtp_T_defs[0].default_val != 0, 
first_default_val_not_zero);
+       OSMO_ASSERT(gtp_T_defs[0].default_val != 0);
        if (gtp_T_defs[0].val == 0)
                osmo_tdefs_reset((*gsn)->tdef);


--
To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/31511
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ggsn
Gerrit-Branch: master
Gerrit-Change-Id: Ia8af1736b63d501661046fe70befe5bbabc1045a
Gerrit-Change-Number: 31511
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to