Apply 'make format'

This commit is contained in:
github action 2022-07-25 21:47:29 +00:00
parent 7b431b37c7
commit e871cd8a44
2 changed files with 16 additions and 19 deletions

View File

@ -3560,7 +3560,8 @@ private:
// determine the dtypep for that PatMember's value, and then // determine the dtypep for that PatMember's value, and then
// width the initial value appropriately. // width the initial value appropriately.
using PatMap = std::map<const AstMemberDType*, AstPatMember*>; // Store member: value using PatMap = std::map<const AstMemberDType*, AstPatMember*>; // Store member: value
using DTypeMap = std::map<const std::string, AstPatMember*>; // Store data_type: default_value using DTypeMap
= std::map<const std::string, AstPatMember*>; // Store data_type: default_value
PatMap patmap; PatMap patmap;
DTypeMap dtypemap; DTypeMap dtypemap;
{ {
@ -3575,44 +3576,42 @@ private:
memp = vdtypep->findMember(textp->text()); memp = vdtypep->findMember(textp->text());
if (!memp) { if (!memp) {
patp->keyp()->v3error("Assignment pattern key '" patp->keyp()->v3error("Assignment pattern key '"
<< textp->text() << textp->text() << "' not found as member");
<< "' not found as member");
break; break;
} else { } else {
const std::pair<PatMap::iterator, bool> ret = patmap.emplace(memp, patp); const std::pair<PatMap::iterator, bool> ret
= patmap.emplace(memp, patp);
if (!ret.second) { if (!ret.second) {
patp->v3error("Assignment pattern contains duplicate entry: " patp->v3error("Assignment pattern contains duplicate entry: "
<< VN_AS(patp->keyp(), Text)->text()); << VN_AS(patp->keyp(), Text)->text());
} }
memp = VN_AS(memp->nextp(), MemberDType); memp = VN_AS(memp->nextp(), MemberDType);
} }
} } else if (const AstNodeDType* nodedtypep
else if (const AstNodeDType* nodedtypep = VN_CAST(patp->keyp(), NodeDType)){ = VN_CAST(patp->keyp(), NodeDType)) {
// data_type: default_value // data_type: default_value
const string dtype = nodedtypep->dtypep()->prettyDTypeName(); const string dtype = nodedtypep->dtypep()->prettyDTypeName();
auto it = dtypemap.find(dtype); auto it = dtypemap.find(dtype);
if (it == dtypemap.end()) { if (it == dtypemap.end()) {
dtypemap.emplace(dtype, patp); dtypemap.emplace(dtype, patp);
} } else {
else {
// Override stored default_value // Override stored default_value
it->second = patp->cloneTree(false); it->second = patp->cloneTree(false);
} }
} } else {
else {
// Undefined pattern // Undefined pattern
patp->keyp()->v3error( patp->keyp()->v3error(
"Assignment pattern key not supported/understood: " "Assignment pattern key not supported/understood: "
<< patp->keyp()->prettyTypeName()); << patp->keyp()->prettyTypeName());
} }
} } else {
else{
// constant expr // constant expr
if (memp) { if (memp) {
const std::pair<PatMap::iterator, bool> ret = patmap.emplace(memp, patp); const std::pair<PatMap::iterator, bool> ret
= patmap.emplace(memp, patp);
if (!ret.second) { if (!ret.second) {
patp->v3error("Assignment pattern contains duplicate entry: " patp->v3error("Assignment pattern contains duplicate entry: "
<< VN_AS(patp->keyp(), Text)->text()); << VN_AS(patp->keyp(), Text)->text());
} }
memp = VN_AS(memp->nextp(), MemberDType); memp = VN_AS(memp->nextp(), MemberDType);
} }
@ -3637,16 +3636,14 @@ private:
patp = it2->second; patp = it2->second;
newpatp = patp->cloneTree(false); newpatp = patp->cloneTree(false);
patp = newpatp; patp = newpatp;
} } else if (defaultp) {
else if (defaultp) {
// default_value for any unassigned member yet // default_value for any unassigned member yet
newpatp = defaultp->cloneTree(false); newpatp = defaultp->cloneTree(false);
patp = newpatp; patp = newpatp;
} else { } else {
if (!VN_IS(vdtypep, UnionDType)) { if (!VN_IS(vdtypep, UnionDType)) {
nodep->v3error("Assignment pattern missed initializing elements: " nodep->v3error("Assignment pattern missed initializing elements: "
<< memp->virtRefDTypep()->prettyDTypeName() << memp->virtRefDTypep()->prettyDTypeName() << " "
<< " "
<< memp->prettyName()); << memp->prettyName());
} }
} }

0
test_regress/t/t_structu_dataType_assignment.pl Normal file → Executable file
View File