diff --git a/VERSION b/VERSION index 42246ba..fdd8146 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.311 +1.5.312 diff --git a/base/netcmp.c b/base/netcmp.c index 38774c8..587b7b1 100644 --- a/base/netcmp.c +++ b/base/netcmp.c @@ -7544,6 +7544,11 @@ struct nlist *addproxies(struct hashlist *p, void *clientdata) } else { lob = ob; + if (ob == NULL) { + Fprintf(stdout, "Error: Premature end of pin list on " + "instance %s.\n", firstpin->instance.name); + break; + } ob->type = i++; ob = ob->next; } diff --git a/base/verilog.c b/base/verilog.c index 0201afe..7468af8 100644 --- a/base/verilog.c +++ b/base/verilog.c @@ -76,7 +76,8 @@ struct hashdict verilogparams; // Global storage for verilog definitions struct hashdict verilogdefs; // Record file pointer that is associated with the hash tables -int hashfile = -1; +int hashfilep = -1; /* for parameters */ +int hashfiled = -1; /* for definitions */ // Global storage for wire buses struct hashdict buses; @@ -2999,18 +3000,25 @@ char *ReadVerilogTop(char *fname, int *fnum, int blackbox) hashfunc = hashcase; } - if ((hashfile != -1) && (hashfile != *fnum)) { - /* Started a new file, so remove all the parameters and definitions */ + if ((hashfilep != -1) && (hashfilep != *fnum)) { + /* Started a new file, so remove all the parameters */ RecurseHashTable(&verilogparams, freeprop); HashKill(&verilogparams); + hashfilep = -1; + } + if ((hashfiled != -1) && (hashfiled != *fnum)) { + /* Started a new file, so remove all the definitions */ RecurseHashTable(&verilogdefs, freeprop); HashKill(&verilogdefs); - hashfile = -1; + hashfiled = -1; } - if (hashfile == -1) { + if (hashfilep == -1) { InitializeHashTable(&verilogparams, OBJHASHSIZE); + hashfilep = filenum; + } + if (hashfiled == -1) { InitializeHashTable(&verilogdefs, OBJHASHSIZE); - hashfile = *fnum; + hashfiled = filenum; } definitions = &verilogdefs;