summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorMitchell Balan <mitchell@stellarscience.com>2019-11-15 17:00:32 -0500
committerMitchell Balan <mitchell@stellarscience.com>2019-11-15 18:09:42 -0500
commit06f3dabe4a2e85a32ade27c0769b6084c828a206 (patch)
treec2065fd550bc60335e37364749b425b6c8c60df5 /clang/lib/CodeGen/CodeGenModule.cpp
parent905357440c98ae06aac692d7adbccc70f1ce9d28 (diff)
downloadbcm5719-llvm-06f3dabe4a2e85a32ade27c0769b6084c828a206.tar.gz
bcm5719-llvm-06f3dabe4a2e85a32ade27c0769b6084c828a206.zip
[clang-tidy] Fix readability-redundant-string-init for c++17/c++2a
Summary: `readability-redundant-string-init` was one of several clang-tidy checks documented as failing for C++17. (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. Reviewers: gribozavr, etienneb, alexfh, hokein, aaron.ballman, gribozavr2 Patch by: poelmanc Subscribers: NoQ, MyDeveloperDay, Eugene.Zelenko, dylanmckay, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D69238
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud