From c59a997255d383eff387cf56a487c89191b65323 Mon Sep 17 00:00:00 2001 From: Akash Levy Date: Wed, 5 Jun 2024 07:53:21 -0700 Subject: [PATCH] Ignore files properly --- frontends/verific/verific.cc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc index d7cf3398c..37a0fd08c 100644 --- a/frontends/verific/verific.cc +++ b/frontends/verific/verific.cc @@ -3477,18 +3477,13 @@ struct VerificPass : public Pass { if (args[argidx] == "-f" || args[argidx] == "-F" || args[argidx] == "-FF") { veri_file::f_file_flags flags = (args[argidx] == "-f") ? veri_file::F_FILE_NONE : ((args[argidx] == "-F") ? veri_file::F_FILE_CAPITAL : veri_file::F_FILE_CAPITAL_NESTED); Array *file_names = veri_file::ProcessFFile(args[++argidx].c_str(), flags, verilog_mode); - argidx++; - if (args[argidx++] == "-ignore_translate_off") { + if (args[++argidx] == "-ignore_translate_off") { // Ignore translate_off statements log("AUTO-DISCOVER: ignoring translate_off directives\n"); hdl_file_sort::SetIgnoreTranslateOff(1); veri_file::SetIgnoreTranslateOff(1); + argidx++; } - while (args[argidx++] == "-i") { - const char *ignore_file = args[argidx++].c_str(); - log("AUTO-DISCOVER: ignoring file %s\n", ignore_file); - hdl_file_sort::UnRegisterFile(ignore_file); - } veri_file::AddVFile("preqorsor/data/blackboxes.v"); FOREACH_ARRAY_ITEM(veri_file::IncludeDirs(), i, dir_name) { if (!hdl_file_sort::RegisterDir(dir_name)) { @@ -3524,7 +3519,17 @@ struct VerificPass : public Pass { // hdl_file_sort::AddLOption(key); // log("AUTO-DISCOVER: added -L option %s\n", key); // } + int orig_argidx = argidx; FOREACH_ARRAY_ITEM(file_names, i, file_name) { + bool skip; + for (argidx = orig_argidx; argidx < GetSize(args) && args[argidx] == "-i"; argidx++) { + string ignore_file = args[++argidx]; + if (string(file_name) == ignore_file) { + log("AUTO-DISCOVER: ignoring file %s\n", ignore_file.c_str()); + skip = true; + } + } + if (skip) continue; if (!hdl_file_sort::RegisterFile(file_name)) { verific_error_msg.clear(); log_cmd_error("Could not register file %s.\n", file_name);