Internals: Cleanup std::string empty string constructors.

This commit is contained in:
Wilson Snyder 2025-01-21 19:51:43 -05:00
parent 35fa0d051d
commit bed9aa9904
2 changed files with 10 additions and 6 deletions

View File

@ -456,9 +456,7 @@ void EmitCFunc::emitDereference(AstNode* nodep, const string& pointer) {
void EmitCFunc::emitCvtPackStr(AstNode* nodep) {
if (const AstConst* const constp = VN_CAST(nodep, Const)) {
putnbs(nodep, "std::string{");
putsQuoted(constp->num().toString());
puts("}");
emitConstantString(constp);
} else if (VN_IS(nodep->dtypep(), StreamDType)) {
putnbs(nodep, "VL_CVT_PACK_STR_ND(");
iterateAndNextConstNull(nodep);
@ -494,9 +492,7 @@ void EmitCFunc::emitConstant(AstConst* nodep, AstVarRef* assigntop, const string
} else if (nodep->num().isFourState()) {
nodep->v3warn(E_UNSUPPORTED, "Unsupported: 4-state numbers in this context");
} else if (nodep->num().isString()) {
putnbs(nodep, "std::string{");
putsQuoted(nodep->num().toString());
puts("}");
emitConstantString(nodep);
} else if (nodep->isWide()) {
int upWidth = nodep->num().widthMin();
int chunks = 0;
@ -594,6 +590,13 @@ void EmitCFunc::emitConstant(AstConst* nodep, AstVarRef* assigntop, const string
}
}
void EmitCFunc::emitConstantString(const AstConst* nodep) {
putnbs(nodep, "std::string{");
const string str = nodep->num().toString();
if (!str.empty()) putsQuoted(str);
puts("}");
}
void EmitCFunc::emitSetVarConstant(const string& assignString, AstConst* constp) {
if (!constp->isWide()) {
puts(assignString);

View File

@ -208,6 +208,7 @@ public:
void emitCvtPackStr(AstNode* nodep);
void emitCvtWideArray(AstNode* nodep, AstNode* fromp);
void emitConstant(AstConst* nodep, AstVarRef* assigntop, const string& assignString);
void emitConstantString(const AstConst* nodep);
void emitSetVarConstant(const string& assignString, AstConst* constp);
void emitVarReset(AstVar* varp);
string emitVarResetRecurse(const AstVar* varp, const string& varNameProtected,