UVM Connect code shows error with the gcc 4.4 version, error message is :
/uvmc-2.2/src/connect/sc/uvmc_commands.h", line 1049: error:
argument of type "bits_t" is incompatible with parameter of type
"bits_t *"
packer->init_pack(bits);
^
"/uvmc-2.2/src/connect/sc/uvmc_commands.h", line 1052: error:
argument of type "bits_t" is incompatible with parameter of type
"const bits_t *"
UVMC_set_config_object(type_name,context,inst_name,field_name,bits);
^
"/uvmc-2.2/src/connect/sc/uvmc_commands.h", line 1201: error:
argument of type "bits_t" is incompatible with parameter of type
"bits_t *"
if (UVMC_get_config_object(type_name,context,inst_name,field_name,bits)) {
^
"/uvmc-2.2/src/connect/sc/uvmc_commands.h", line 1202: error:
argument of type "bits_t" is incompatible with parameter of type
"const bits_t *"
packer->init_unpack(bits);
same code works when older version of the code is used (e.g. gcc 4.1).
The uvm_packer class defines its method as:
void init_pack(bits_t *bits, int level=0);
But the caller is passing it, not a pointer but, the bit_t object itself.
template <class T, class CVRT>
void uvmc_set_config_object (const char* type_name,
const char* context,
const char* inst_name,
const char* field_name,
T &value,
uvmc_packer *packer=NULL) {
static bits_t bits;
static uvmc_packer def_packer;
if (packer == NULL) {
packer = &def_packer;
//packer->big_endian = 0;
}
wait_sv_ready();
packer->init_pack(bits);
Can someone suggest the update that might be required in UVM Connect code?
Thank You.