modernize-use-equals-default replaces default constructors/destructors with = default;. When the optional semicolon after a member function is present, this results in two consecutive semicolons.
This patch checks to see if the next non-comment token after the code to be replaced is a semicolon, and if so offers a replacement of = default rather than = default;.
This patch adds trailing comments and semicolons to about 5 existing tests.
There should be utility code in clang-tidy/util/ that deals with custom lexing, that should be able to do the job.