﻿# V2505\. MISRA\. The 'goto' statement shouldn't jump to a label declared earlier\.

Диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Использование оператора 'goto', осуществляющего переход к метке, находящейся выше по коду, ухудшает читаемость кода и как следствие – усложняет его поддержку\.

Пример кода, на который анализатор выдаст предупреждение: 

```cpp
void init(....)
{
  ....
again:
  ....
  if (....)
    if (....)
      goto again;
  ....
}
```

Чтобы анализатор не выдавал предупреждение, необходимо отказаться от использования оператора 'goto' или переписать код таким образом, чтобы метка, на которую ссылается 'goto', находилась ниже него\.