diff --git a/main.cc b/main.cc index 3ba8774f1..79a88e40c 100644 --- a/main.cc +++ b/main.cc @@ -714,6 +714,9 @@ int main(int argc, char*argv[]) cout << endl << "PARSING INPUT" << endl; } + const char *flag_dvp = flags["DISABLE_VIRTUAL_PINS"]; + if (flag_dvp) disable_virtual_pins = strcmp(flag_dvp,"true")==0; + /* Parse the input. Make the pform. */ int rc = pform_parse(argv[optind]); diff --git a/netlist.cc b/netlist.cc index df701a338..a3106e796 100644 --- a/netlist.cc +++ b/netlist.cc @@ -226,6 +226,11 @@ Link& NetPins::pin(unsigned idx) const Link& NetPins::pin(unsigned idx) const { + if (!pins_ && !disable_virtual_pins) { + cerr << get_fileline() << ": internal error: pin is unexpectedly" + " virtual, try again with -pDISABLE_VIRTUAL_PINS=true" << endl; + assert(NULL); + } assert(pins_); assert(idx < npins_); assert(idx == 0? pins_[0].pin_zero_ : pins_[idx].pin_==idx);