Why is this an issue?

This rule ensures that every loop statement is clearly identified with begin and end labels. You can disable the requirement for an end label by setting mandatoryEndLabel to false.

The rule also verifies that — when an end label is present — it exactly matches the corresponding begin label.

How to fix it

Code examples

Noncompliant code example

With mandatoryEndLabel parameter set to trhe.

for i in data'range loop -- Noncompliant: No label at all
  ...
end loop;

delay_loop : while cnt > 0 loop
  ...
end loop; -- Noncompliant: Missing end label

forever : loop
  ...
end loop frv; -- Noncompliant: Mismatched labels

Compliant solution

With mandatoryEndLabel parameter set to trhe.

my_loop : for i in data'range loop
  ...
end loop my_loop;

delay_loop : while cnt > 0 loop
  ...
end loop delay_loop;

forever : loop
  ...
end loop forever;