Hi!
This is my problem:
In the module, Module.h file, I have declared the following:
typedef /*@abstract@*/ struct _Module_Cmd_T {
Module_Type_T Type; /* enum */
Module_Info_T Info; /* struct */
union {
/*@NULL@*/ void * const NoData;
bits32 Constant;
/*@NULL@*/ const Module_Field_T Field;
} AdditionalInfo;
} Module_Cmd_T;
where Module_Field_T, Module_Info_T and Module_Type_T have previously been
declared in Module.h
bits32 is an unsigned long
In another module, Module2, I try to give a value to an instance of the
Module_Cmd_T, like this:
#include "Module.h"
/*@access Module_Cmd_T@*/
static const Module_Cmd_T pm Command_C[1] =
{
Module_Type_foo,
{0, 16, NULL},
(bits32)4
};
Splint complains:
Module2.c:12:10: Initial value of Command_C[0].AdditionalInfo is type
bits32, expects union { void * NoData; bits32 Constant;
Module_Field_T Field; }: (bits32)4
Types are incompatible. (Use -type to inhibit warning)
Setting the union value to NULL will not cause this complaint.
What do I do to prevent splint from typechecking the union within the struct
or is there a better solution out there?
Thankful for any information.
/Emma
---------------------------------------------------------------
Emma Wermstr�m
Software Engineer
Saab Ericsson Space AB tel: 031-7354433
S-405 15 Goteborg mobil: 0708-375230
SWEDEN mail: [EMAIL PROTECTED]
--------------------------------------------------------------