Fix `--skip-identical` skipping on some errors (#6066).
This commit is contained in:
parent
db03b95389
commit
54e637c72b
1
Changes
1
Changes
|
@ -54,6 +54,7 @@ Verilator 5.037 devel
|
||||||
* Fix type operator for interface signals (#6049) (#6050). [Todd Strader]
|
* Fix type operator for interface signals (#6049) (#6050). [Todd Strader]
|
||||||
* Fix V3OrderParallel scoring contraction hang (#6052). [Bartłomiej Chmiel, Antmicro Ltd.]
|
* Fix V3OrderParallel scoring contraction hang (#6052). [Bartłomiej Chmiel, Antmicro Ltd.]
|
||||||
* Fix virtual interface array typedef expressions (#6057).
|
* Fix virtual interface array typedef expressions (#6057).
|
||||||
|
* Fix `--skip-identical` skipping on some errors (#6066). [Todd Strader]
|
||||||
|
|
||||||
|
|
||||||
Verilator 5.036 2025-04-27
|
Verilator 5.036 2025-04-27
|
||||||
|
|
|
@ -349,13 +349,14 @@ string V3Error::stripMetaText(const string& text, bool stripContext) VL_PURE {
|
||||||
}
|
}
|
||||||
|
|
||||||
void V3Error::abortIfWarnings() {
|
void V3Error::abortIfWarnings() {
|
||||||
|
if (!isErrorOrWarn()) return;
|
||||||
const bool exwarn = warnFatal() && warnCount();
|
const bool exwarn = warnFatal() && warnCount();
|
||||||
if (errorCount() && exwarn) {
|
if (errorCount() && exwarn) {
|
||||||
v3fatalMany("Exiting due to " << std::dec << V3Error::s().errorCount() << " error(s), " //
|
v3fatalMany("Exiting due to " << std::dec << V3Error::s().errorCount() << " error(s), " //
|
||||||
<< V3Error::s().warnCount() << " warning(s)\n");
|
<< V3Error::s().warnCount() << " warning(s)\n");
|
||||||
} else if (errorCount()) {
|
} else if (errorCount()) {
|
||||||
v3fatalMany("Exiting due to " << std::dec << V3Error::s().errorCount() << " error(s)\n");
|
v3fatalMany("Exiting due to " << std::dec << V3Error::s().errorCount() << " error(s)\n");
|
||||||
} else if (exwarn) {
|
} else {
|
||||||
v3fatalMany("Exiting due to " << std::dec << V3Error::s().warnCount() << " warning(s)\n");
|
v3fatalMany("Exiting due to " << std::dec << V3Error::s().warnCount() << " warning(s)\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,6 +413,9 @@ public:
|
||||||
void incWarnings() VL_REQUIRES(m_mutex) { ++m_warnCount; }
|
void incWarnings() VL_REQUIRES(m_mutex) { ++m_warnCount; }
|
||||||
void incErrors() VL_REQUIRES(m_mutex) { ++m_errCount; }
|
void incErrors() VL_REQUIRES(m_mutex) { ++m_errCount; }
|
||||||
int errorCount() VL_REQUIRES(m_mutex) { return m_errCount; }
|
int errorCount() VL_REQUIRES(m_mutex) { return m_errCount; }
|
||||||
|
bool isErrorOrWarn() VL_REQUIRES(m_mutex) {
|
||||||
|
return errorCount() || (warnFatal() && warnCount());
|
||||||
|
}
|
||||||
bool pretendError(int errorCode) VL_REQUIRES(m_mutex) { return m_pretendError[errorCode]; }
|
bool pretendError(int errorCode) VL_REQUIRES(m_mutex) { return m_pretendError[errorCode]; }
|
||||||
void pretendError(V3ErrorCode code, bool flag) VL_REQUIRES(m_mutex) {
|
void pretendError(V3ErrorCode code, bool flag) VL_REQUIRES(m_mutex) {
|
||||||
if (code == V3ErrorCode::WIDTH) {
|
if (code == V3ErrorCode::WIDTH) {
|
||||||
|
@ -528,6 +531,10 @@ public:
|
||||||
const V3RecursiveLockGuard guard{s().m_mutex};
|
const V3RecursiveLockGuard guard{s().m_mutex};
|
||||||
return s().isError(code, supp);
|
return s().isError(code, supp);
|
||||||
}
|
}
|
||||||
|
static bool isErrorOrWarn() VL_MT_SAFE_EXCLUDES(s().m_mutex) {
|
||||||
|
const V3RecursiveLockGuard guard{s().m_mutex};
|
||||||
|
return s().isErrorOrWarn();
|
||||||
|
}
|
||||||
static void abortIfErrors() {
|
static void abortIfErrors() {
|
||||||
if (errorCount()) abortIfWarnings();
|
if (errorCount()) abortIfWarnings();
|
||||||
}
|
}
|
||||||
|
|
|
@ -755,7 +755,8 @@ static void verilate(const string& argString) {
|
||||||
+ "__idmap.xml");
|
+ "__idmap.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v3Global.opt.skipIdentical().isTrue() || v3Global.opt.makeDepend().isTrue()) {
|
if ((v3Global.opt.skipIdentical().isTrue() || v3Global.opt.makeDepend().isTrue())
|
||||||
|
&& !V3Error::isErrorOrWarn()) {
|
||||||
V3File::writeTimes(v3Global.opt.hierTopDataDir() + "/" + v3Global.opt.prefix()
|
V3File::writeTimes(v3Global.opt.hierTopDataDir() + "/" + v3Global.opt.prefix()
|
||||||
+ "__verFiles.dat",
|
+ "__verFiles.dat",
|
||||||
argString);
|
argString);
|
||||||
|
|
Loading…
Reference in New Issue