Why is this an issue?

Concurrent assignments (assignments outside of processes) should be complete to avoid undesired latch inference. All select assignments should end with a when others clause and conditional assignments with an else clause.

How to fix it

Code examples

Noncompliant code example

f <= a when a = '1'; -- Noncompliant: No "else"

with a select g <= '0' when '0'; -- Noncompliant: No "when others"

Compliant solution

f <= a when a = '1' else b;

with a select g <= '0' when '0', '1' when others;