Merge pull request #836 from larsclausen/struct-packed-init

Report error for packed struct default member values
This commit is contained in:
Stephen Williams 2022-12-27 13:57:30 -08:00 committed by GitHub
commit 59df5f7d01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 0 deletions

View File

@ -242,6 +242,13 @@ ivl_type_t struct_type_t::elaborate_type_raw(Design*des, NetScope*scope) const
; cur_name != curp->names->end() ; ++ cur_name) {
decl_assignment_t*namep = *cur_name;
if (packed_flag && namep->expr) {
cerr << namep->expr->get_fileline() << " error: "
<< "Packed structs must not have default member values."
<< endl;
des->errors++;
}
netstruct_t::member_t memb;
memb.name = namep->name;
memb.net_type = elaborate_array_type(des, scope, *this,

View File

@ -0,0 +1,13 @@
// Check that an error is reported when specifing a default member value for a
// packed struct.
module test;
struct packed {
// This should fail, default member value is not allowed for packed struct
integer x = 10;
} s;
initial begin
$display("FAILED");
end
endmodule

View File

@ -489,6 +489,7 @@ struct_member_signed normal,-g2009 ivltests
struct_packed_array normal,-g2009 ivltests
struct_packed_array2 normal,-g2009 ivltests
struct_packed_darray_fail CE,-g2009 ivltests
struct_packed_member_def CE,-g2009 ivltests
struct_packed_queue_fail CE,-g2009 ivltests
struct_packed_sysfunct normal,-g2009 ivltests
struct_packed_sysfunct2 normal,-g2009 ivltests