Add regression tests for package scope identifiers
Check that it is possible to reference a package scoped identifier that has the same name as a local identifier, but is a different kind of identifier. * A variable or function identifier from a package scope if it is a type identifier in the current scope * A type identifier from a package scope if it is a non-type identifier in the current scope Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
8d7e7b6283
commit
159345ca96
|
|
@ -0,0 +1,30 @@
|
|||
// Check that it is possible to reference a package scoped function, even if
|
||||
// there is a type identifier of the same name in the current scope.
|
||||
|
||||
bit failed = 1'b0;
|
||||
|
||||
`define check(expr, val) \
|
||||
if (expr !== val) begin \
|
||||
$display("FAILED: %s, expected %0d, got %0d", `"expr`", val, expr); \
|
||||
failed = 1'b1; \
|
||||
end
|
||||
|
||||
package P;
|
||||
function integer T(integer x);
|
||||
return x + 1;
|
||||
endfunction
|
||||
endpackage
|
||||
|
||||
module test;
|
||||
typedef integer T;
|
||||
initial begin
|
||||
integer x;
|
||||
|
||||
x = P::T(10);
|
||||
`check(x, 11)
|
||||
|
||||
if (!failed) begin
|
||||
$display("PASSED");
|
||||
end
|
||||
end
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
// Check that it is possible to reference a package scoped type identifier, even if
|
||||
// there is a identifier of the same name in the current scope.
|
||||
|
||||
bit failed = 1'b0;
|
||||
|
||||
`define check(expr, val) \
|
||||
if (expr !== val) begin \
|
||||
$display("FAILED: %s, expected %0d, got %0d", `"expr`", val, expr); \
|
||||
failed = 1'b1; \
|
||||
end
|
||||
|
||||
package P;
|
||||
typedef logic [31:0] T;
|
||||
endpackage
|
||||
|
||||
module test;
|
||||
logic T;
|
||||
initial begin
|
||||
P::T x;
|
||||
`check($bits(x), 32)
|
||||
|
||||
if (!failed) begin
|
||||
$display("PASSED");
|
||||
end
|
||||
end
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
// Check that it is possible to reference a package scoped identifier, even if
|
||||
// there is a type identifier of the same name in the current scope.
|
||||
|
||||
bit failed = 1'b0;
|
||||
|
||||
`define check(expr, val) \
|
||||
if (expr !== val) begin \
|
||||
$display("FAILED: %s, expected %0d, got %0d", `"expr`", val, expr); \
|
||||
failed = 1'b1; \
|
||||
end
|
||||
|
||||
package P;
|
||||
integer T = 10;
|
||||
endpackage
|
||||
|
||||
module test;
|
||||
typedef integer T;
|
||||
integer x;
|
||||
initial begin
|
||||
x = P::T;
|
||||
`check(x, 10)
|
||||
|
||||
if (!failed) begin
|
||||
$display("PASSED");
|
||||
end
|
||||
end
|
||||
endmodule
|
||||
|
|
@ -618,6 +618,9 @@ sv_port_default14 CE,-g2009 ivltests
|
|||
sv_ps_function1 normal,-g2009 ivltests
|
||||
sv_ps_function2 normal,-g2009 ivltests
|
||||
sv_ps_function3 normal,-g2009 ivltests
|
||||
sv_ps_function4 normal,-g2009 ivltests
|
||||
sv_ps_type1 normal,-g2009 ivltests
|
||||
sv_ps_var1 normal,-g2009 ivltests
|
||||
sv_queue1 normal,-g2009 ivltests
|
||||
sv_queue2 normal,-g2009 ivltests
|
||||
sv_queue3 normal,-g2009 ivltests
|
||||
|
|
|
|||
Loading…
Reference in New Issue