aaron.ballman added inline comments.
================ Comment at: clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp:67-70 +// With -std c++14 or earlier (!LangOps.CPlusPlus17), it was sufficient to +// return CtorExpr->getSourceRange(). However, starting with c++17, parsing +// the expression 'std::string Name = ""' results in a CtorExpr whose +// SourceRange includes just '""' rather than the previous 'Name = ""'. ---------------- Are you sure that this behavioral difference isn't just a bug in Clang? I can't think of why the source range should differ based on language mode, so I wonder if the correct thing to do is fix how we calculate the source range in Clang? ================ Comment at: clang-tools-extra/test/clang-tidy/checkers/readability-redundant-string-init.cpp:106 DECL_STRING(e, ""); - // CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization + // CHECK-MESSAGES: [[@LINE-1]]:1{{[58]}}: warning: redundant string initialization ---------------- poelmanc wrote: > aaron.ballman wrote: > > Why does this need a regex? > Thanks, I added a comment explaining that the character position of the > warning differs slightly between C++11/14 (reports at the 'e') and C++17/2x > (reports at the '"'), since the underlying parsing code has changed. Thank you for the explanation! Repository: rCTE Clang Tools Extra CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69238/new/ https://reviews.llvm.org/D69238 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits