From 67b29ab5d4e9e4e6c0b1428bfa95694b96e2de92 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Sat, 22 Jan 2022 11:47:24 +0100 Subject: [PATCH] Add a regression test to check enum elaboration order Test that enums are elaborated in declaration order and a enum declaration can reference a item of an enum that was declared before it. Signed-off-by: Lars-Peter Clausen --- ivtest/ivltests/enum_order.v | 25 +++++++++++++++++++++++++ ivtest/regress-sv.list | 1 + 2 files changed, 26 insertions(+) create mode 100644 ivtest/ivltests/enum_order.v diff --git a/ivtest/ivltests/enum_order.v b/ivtest/ivltests/enum_order.v new file mode 100644 index 000000000..8f763a916 --- /dev/null +++ b/ivtest/ivltests/enum_order.v @@ -0,0 +1,25 @@ +// Verify that enums can reference items from enums declared before them + +module test; + +enum logic { + A = 1 +} a; + +enum logic { + B = A +} b; + +enum logic { + C = B +} c; + +initial begin + if (A == B && A == C) begin + $display("PASSED"); + end else begin + $display("FAILED"); + end +end + +endmodule diff --git a/ivtest/regress-sv.list b/ivtest/regress-sv.list index b42729baf..b5d223bca 100644 --- a/ivtest/regress-sv.list +++ b/ivtest/regress-sv.list @@ -237,6 +237,7 @@ enum_in_struct normal,-g2005-sv ivltests enum_in_class normal,-g2005-sv ivltests enum_in_class_name_coll CE,-g2005-sv ivltests enum_next normal,-g2005-sv ivltests +enum_order normal,-g2005-sv ivltests enum_ports normal,-g2005-sv ivltests enum_test1 normal,-g2005-sv ivltests enum_test2 normal,-g2005-sv ivltests