Improve more errors to note IEEE
This commit is contained in:
parent
b3cf5c4f5f
commit
d6b10465f3
|
|
@ -445,7 +445,7 @@ private:
|
||||||
if (!constp) { nodep->v3error("Replication value isn't a constant."); return; }
|
if (!constp) { nodep->v3error("Replication value isn't a constant."); return; }
|
||||||
uint32_t times = constp->toUInt();
|
uint32_t times = constp->toUInt();
|
||||||
if (times==0 && !nodep->backp()->castConcat()) { // Concat Visitor will clean it up.
|
if (times==0 && !nodep->backp()->castConcat()) { // Concat Visitor will clean it up.
|
||||||
nodep->v3error("Replication value of 0 is only legal under a concatenation."); times=1;
|
nodep->v3error("Replication value of 0 is only legal under a concatenation (IEEE 2012 11.4.12.1)"); times=1;
|
||||||
}
|
}
|
||||||
if (nodep->lhsp()->isString()) {
|
if (nodep->lhsp()->isString()) {
|
||||||
AstNode* newp = new AstReplicateN(nodep->fileline(),nodep->lhsp()->unlinkFrBack(),
|
AstNode* newp = new AstReplicateN(nodep->fileline(),nodep->lhsp()->unlinkFrBack(),
|
||||||
|
|
@ -476,7 +476,7 @@ private:
|
||||||
if (!constp) { nodep->v3error("Replication value isn't a constant."); return; }
|
if (!constp) { nodep->v3error("Replication value isn't a constant."); return; }
|
||||||
uint32_t times = constp->toUInt();
|
uint32_t times = constp->toUInt();
|
||||||
if (times==0 && !nodep->backp()->castConcat()) { // Concat Visitor will clean it up.
|
if (times==0 && !nodep->backp()->castConcat()) { // Concat Visitor will clean it up.
|
||||||
nodep->v3error("Replication value of 0 is only legal under a concatenation.");
|
nodep->v3error("Replication value of 0 is only legal under a concatenation (IEEE 2012 11.4.12.1)");
|
||||||
}
|
}
|
||||||
nodep->dtypeSetString();
|
nodep->dtypeSetString();
|
||||||
}
|
}
|
||||||
|
|
@ -1238,7 +1238,7 @@ private:
|
||||||
}
|
}
|
||||||
if (!itemp->valuep()) {
|
if (!itemp->valuep()) {
|
||||||
if (num.isEqZero() && itemp != nodep->itemsp())
|
if (num.isEqZero() && itemp != nodep->itemsp())
|
||||||
itemp->v3error("Enum value wrapped around"); // IEEE says illegal
|
itemp->v3error("Enum value illegally wrapped around (IEEE 2012 6.19)");
|
||||||
if (!nodep->dtypep()->basicp()
|
if (!nodep->dtypep()->basicp()
|
||||||
&& !nodep->dtypep()->basicp()->keyword().isIntNumeric()) {
|
&& !nodep->dtypep()->basicp()->keyword().isIntNumeric()) {
|
||||||
itemp->v3error("Enum names without values only allowed on numeric types");
|
itemp->v3error("Enum names without values only allowed on numeric types");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue