make_pair has a PExpr* as a second argument
The make_pair() routine has a PExpr* as the second argument. Not all compilers can promote a child correctly, so just assign the child type to a PExpr* when they are created solves this issue.
This commit is contained in:
parent
1c0408d9b9
commit
420519193d
8
pform.cc
8
pform.cc
|
|
@ -136,7 +136,7 @@ void parm_to_defparam_list(const string¶m)
|
|||
// Remember to use 'new' to allocate string for PEString
|
||||
// because 'delete' is used by its destructor.
|
||||
char *nchar = strcpy(new char [strlen(buf_ptr)+1], buf_ptr);
|
||||
PEString* ndec = new PEString(nchar);
|
||||
PExpr* ndec = new PEString(nchar);
|
||||
Module::user_defparms.push_back( make_pair(name, ndec) );
|
||||
free(buf);
|
||||
}
|
||||
|
|
@ -173,7 +173,7 @@ void parm_to_defparam_list(const string¶m)
|
|||
val = pform_verinum_with_size(siz, val, "<command line>", 0);
|
||||
}
|
||||
|
||||
PENumber* ndec = new PENumber(val);
|
||||
PExpr* ndec = new PENumber(val);
|
||||
Module::user_defparms.push_back( make_pair(name, ndec) );
|
||||
|
||||
}
|
||||
|
|
@ -181,13 +181,13 @@ void parm_to_defparam_list(const string¶m)
|
|||
// REALTIME, something like - scope.parameter=1.22 or scope.parameter=1e2
|
||||
if (strchr(value, '.') || strchr(value, 'e') || strchr(value, 'E')) {
|
||||
verireal *val = new verireal(value);
|
||||
PEFNumber* nreal = new PEFNumber(val);
|
||||
PExpr* nreal = new PEFNumber(val);
|
||||
Module::user_defparms.push_back( make_pair(name, nreal) );
|
||||
}
|
||||
else {
|
||||
// DEC_NUMBER, something like - scope.parameter=3
|
||||
verinum *val = make_unsized_dec(value);
|
||||
PENumber* ndec = new PENumber(val);
|
||||
PExpr* ndec = new PENumber(val);
|
||||
Module::user_defparms.push_back( make_pair(name, ndec) );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue