-# https://github.com/YosysHQ/yosys/issues/1391
+# https://github.com/YosysHQ/yosys/issues/1381
read_verilog <<EOT
-module sub(input i, output o, (* techmap_autopurge *) input [1:0] j);
+module sub(input i, output o, (* techmap_autopurge *) input j);
foobar f(i, o, j);
endmodule
EOT
hierarchy
check -assert
-read_verilog -overwrite <<EOT
+# https://github.com/YosysHQ/yosys/issues/1391
+design -reset
+read_verilog <<EOT
+module sub(input i, output o, (* techmap_autopurge *) input [1:0] j);
+foobar f(i, o, j);
+endmodule
+EOT
+design -stash techmap
+
+read_verilog <<EOT
(* blackbox *)
module sub(input i, output o, input j);
endmodule
module foobar(input i, output o, input j);
endmodule
+module top(input i, output o);
+sub s0(i, o);
+endmodule
+EOT
+
+techmap -map %techmap
+hierarchy
+check -assert
+
+read_verilog -overwrite <<EOT
module top(input i, output o);
wire j;
sub s0(i, o, j);