This patch is rather large and fixes a couple of problems. The major change is that instead of keeping all the range specifications in a list that is later processed the information is now kept as individual entries for the port and net definitions. This allows easier checking for multiple definitions (pr1660028), more detailed error messages and the ability to pass the now deprecated style of a scalar I/O definition used with a vectored net definition. These changes did require extra code to prevent a single definition from setting the range values in more than on place. When using the new ANSI-C style of port declarations (1364-2001 12.3.4 list_of_port_declarations) the compiler ensures that you do not redeclare the port in the body (it is already completely defined). This caught a few errors in the test suite (pr859 and sqrt32*). The flag to disable the normal port checking and allow the deprecated port syntax is -gno-io-range-error. This will print a warning for the case of a scalar port with a vectored definition in the body. All other cases are still considered an error. |
||
|---|---|---|
| .. | ||
| .cvsignore | ||
| Makefile.in | ||
| cflexor.lex | ||
| cfparse.y | ||
| cfparse_misc.h | ||
| globals.h | ||
| iverilog.man | ||
| main.c | ||
| substit.c | ||