Internals: Construct V3Number with correct type instead of changing it manually. (#3529)

This commit is contained in:
Mariusz Glebocki
2022-08-08 08:17:02 -04:00
committed by GitHub
parent d20f22beb1
commit 2b12fe5773
6 changed files with 33 additions and 16 deletions
+12
View File
@@ -110,6 +110,18 @@ V3Number::V3Number(VerilogStringLiteral, AstNode* nodep, const string& str) {
opCleanThis(true);
}
V3Number::V3Number(AstNode* nodep, const AstNodeDType* nodedtypep) {
if (nodedtypep->isString()) {
init(nodep, 0);
setString("");
} else if (nodedtypep->isDouble()) {
init(nodep, 64);
setDouble(0.0);
} else {
init(nodep, nodedtypep->width(), nodedtypep->widthSized());
}
}
void V3Number::V3NumberCreate(AstNode* nodep, const char* sourcep, FileLine* fl) {
init(nodep, 0);
m_fileline = fl;