Section 12.4.2 (unique-if) of the 2017 LRM says: “The presence of side effects in conditions may cause nondeterministic results.”, which is a little vague. Is it talking about something like this?
module tb;
bit a, b;
initial begin
a = 1;
unique if (a) begin
$display ("a!");
b = 1;
end
else if (b) begin
$display ("b!");
end
else begin
$display ("Nothing matched.");
end
$finish;
end
endmodule : tb
It seems that half of the simulators issue a unique-if warning that a and b are both true, and the other half don’t.