The attached code causes an assertion failure in iverilog.
The assertion failure is:
ivl: pform_struct_type.cc:70: void pform_set_packed_struct(struct_type_t, perm_string, NetNet::Type, std::list<named\<pexpr*> ></named\<pexpr*>): Assertion `net' failed.
The input is invalid, so I would expect an error message rather than an assertion failure.
I've pushed a fix for this to the master branch on github.
Thanks for reporting this.