Such redundant declarations can be removed without changing program behaviour.
They can for instance be unintentional left overs from previous refactorings
when code has been moved around. Having redundant declarations could in worst
case mean that there are typos in the code that cause bugs.

Normally the code can be automatically fixed, clang-tidy can remove
the second declaration. However there are 2 cases when you need to fix the code
manually: