https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65101
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- cppcheck is wrong. If the std::__uninitialized_move_if_noexcept_a operation throws an exception then __new_finish doesn't get a new value and is left value-initialized, which is checked for in the catch clause.