readability-redundant-string-init was one of several clang-tidy checks documented as failing for C++17 by @gribozavr's extensive testing on 2019-05-20. (The failure mode in C++17 is that it changes std::string Name = ""; to std::string Name = Name;, which actually compiles but crashes at run-time.)
Analyzing the AST with clang -Xclang -ast-dump showed that the outer CXXConstructExprs that previously held the correct SourceRange were being elided in C++17/2a, but the containing VarDecl expressions still had all the relevant information. So this patch changes the fix to get its source ranges from VarDecl.
It adds one test std::string g = "u", h = "", i = "uuu", j = "", k; to confirm proper warnings and fixit replacements in a single DeclStmt where some strings require replacement and others don't. The readability-redundant-string-init.cpp and readability-redundant-string-init-msvc.cpp tests now pass for C++11/14/17/2a.
driveby aside comment (feel free to ignore): wouldn't it be good if "basic_string" here was configurable, this would allow anyone who defines a string class (say like StringRef) which could have this kind of redundant string initialization be able to catch them.
Couldn't this be then used to find code like StringRef EnabledPrefixOut = "";