@@ -568,7 +568,7 @@ string V3Options::filePath(FileLine* fl, const string& modname, const string& la
568
568
// Return "" if not found.
569
569
const string filename = V3Os::filenameCleanup (VName::dehash (modname));
570
570
if (!V3Os::filenameIsRel (filename)) {
571
- // filename is an absolute path, so can find getStdPackagePath()
571
+ // filename is an absolute path, so can find getStdPackagePath()/getStdWaiverPath()
572
572
string exists = filePathCheckOneDir (filename, " " );
573
573
if (exists != " " ) return exists;
574
574
}
@@ -631,7 +631,7 @@ void V3Options::filePathLookedMsg(FileLine* fl, const string& modname) {
631
631
V3LangCode V3Options::fileLanguage (const string& filename) {
632
632
string ext = V3Os::filenameNonDir (filename);
633
633
string::size_type pos;
634
- if (filename == V3Options::getStdPackagePath ()) {
634
+ if (filename == V3Options::getStdPackagePath () || filename == V3Options::getStdWaiverPath () ) {
635
635
return V3LangCode::mostRecent ();
636
636
} else if ((pos = ext.rfind (' .' )) != string::npos) {
637
637
ext.erase (0 , pos + 1 );
@@ -793,6 +793,9 @@ string V3Options::getenvVERILATOR_SOLVER() {
793
793
string V3Options::getStdPackagePath () {
794
794
return V3Os::filenameJoin (getenvVERILATOR_ROOT (), " include" , " verilated_std.sv" );
795
795
}
796
+ string V3Options::getStdWaiverPath () {
797
+ return V3Os::filenameJoin (getenvVERILATOR_ROOT (), " include" , " verilated_std_waiver.vlt" );
798
+ }
796
799
797
800
string V3Options::getSupported (const string& var) {
798
801
// If update below, also update V3Options::showVersion()
@@ -1258,7 +1261,10 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc,
1258
1261
DECL_OPTION (" -json-edit-nums" , OnOff, &m_jsonEditNums);
1259
1262
DECL_OPTION (" -json-ids" , OnOff, &m_jsonIds);
1260
1263
DECL_OPTION (" -E" , CbOnOff, [this ](bool flag) {
1261
- if (flag) m_stdPackage = false ;
1264
+ if (flag) {
1265
+ m_stdPackage = false ;
1266
+ m_stdWaiver = false ;
1267
+ }
1262
1268
m_preprocOnly = flag;
1263
1269
});
1264
1270
DECL_OPTION (" -emit-accessors" , OnOff, &m_emitAccessors);
@@ -1512,8 +1518,12 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc,
1512
1518
m_statsVars = flag;
1513
1519
m_stats |= flag;
1514
1520
});
1515
- DECL_OPTION (" -std" , CbOnOff, [this ](bool flag) { m_stdPackage = flag; });
1521
+ DECL_OPTION (" -std" , CbOnOff, [this ](bool flag) {
1522
+ m_stdPackage = flag;
1523
+ m_stdWaiver = flag;
1524
+ });
1516
1525
DECL_OPTION (" -std-package" , OnOff, &m_stdPackage);
1526
+ DECL_OPTION (" -std-waiver" , OnOff, &m_stdWaiver);
1517
1527
DECL_OPTION (" -stop-fail" , OnOff, &m_stopFail);
1518
1528
DECL_OPTION (" -structs-packed" , OnOff, &m_structsPacked);
1519
1529
DECL_OPTION (" -sv" , CbCall, [this ]() { m_defaultLanguage = V3LangCode::L1800_2023; });
0 commit comments