warnings

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Neels Hofmeyr nhofmeyr at sysmocom.de
Sat Feb 20 15:16:55 UTC 2016


Hi list,

I tend to use vim's :make command so that it takes me to the positions of
warnings and errors automatically. However, when hacking on osmo-iuh, I
sometimes get dozens of these irritating warning chunks:

[[[
../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:35:10: warning: ‘struct Member’ declared inside parameter list
   struct IE_Extensions *iE_Extensions /* OPTIONAL */;
          ^
/usr/local/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
   void (*free)(type *);   \
                ^
../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:31:2: note: in expansion of macro ‘A_SEQUENCE_OF’
  A_SEQUENCE_OF(struct Member {
  ^
../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:35:10: warning: its scope is only this definition or declaration, which is probably not what you want
   struct IE_Extensions *iE_Extensions /* OPTIONAL */;
          ^
/usr/local/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
   void (*free)(type *);   \
                ^
../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:31:2: note: in expansion of macro ‘A_SEQUENCE_OF’
  A_SEQUENCE_OF(struct Member {
  ^
]]]

The cause are numerous instances of code like:

[[[
/* CriticalityDiagnostics-IE-List */
typedef struct CriticalityDiagnostics_IE_List {
        A_SEQUENCE_OF(struct Member {
                Criticality_t    iECriticality;
                ProtocolIE_ID_t  iE_ID;
                TypeOfError_t    typeOfError;
                struct IE_Extensions    *iE_Extensions  /* OPTIONAL */;
                /*
                 * This type is extensible,
                 * possible extensions are below.
                 */
                
                /* Context for parsing across buffer boundaries */
                asn_struct_ctx_t _asn_ctx;
        } ) list;
        
        /* Context for parsing across buffer boundaries */
        asn_struct_ctx_t _asn_ctx;
} CriticalityDiagnostics_IE_List_t;
]]]

"...which is probably not what you want".
Turns out it kinda is what I want, I just don't want these warnings :P
Filtering proper error messages from this mess is hard.

Any idea to get rid of these warnings would speed up my dev cycle
dramatically...

Short of refactoring the way these A_SEQUENCE_OF() get generated.
I guess the struct should rather be first declared with a unique name and
then only the type name should be used in A_SEQUENCE_OF(). i.e. not like

  osmo-iuh/include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:
  A_SEQUENCE_OF(struct Member {...

but like:

  osmo-iuh/include/osmocom/rua/RUA_Disconnect.h:
  A_SEQUENCE_OF(RUA_IE_t) list;


Doesn't seem to come from the asn1tostruct.py...

Thanks!!
~Neels

-- 
- Neels Hofmeyr <nhofmeyr at sysmocom.de>          http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschäftsführer / Managing Directors: Holger Freyther, Harald Welte
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20160220/5cb477da/attachment.bin>


More information about the OpenBSC mailing list