diff options
4 files changed, 318 insertions, 0 deletions
diff --git a/Utilities/ClangTidyModule/Tests/CMakeLists.txt b/Utilities/ClangTidyModule/Tests/CMakeLists.txt index 42027ed..a66eaa8 100644 --- a/Utilities/ClangTidyModule/Tests/CMakeLists.txt +++ b/Utilities/ClangTidyModule/Tests/CMakeLists.txt @@ -11,3 +11,4 @@ function(add_run_clang_tidy_test check_name) endfunction() add_run_clang_tidy_test(cmake-use-cmstrlen) +add_run_clang_tidy_test(cmake-use-cmsys-fstream) diff --git a/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream-fixit.cxx b/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream-fixit.cxx new file mode 100644 index 0000000..5c7c123 --- /dev/null +++ b/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream-fixit.cxx @@ -0,0 +1,81 @@ +#include <fstream> +#include <vector> + +namespace cmsys { +using std::ifstream; +using std::ofstream; +using std::fstream; +} + +namespace ns { +using std::ifstream; +using std::ofstream; +using std::fstream; + +namespace ns { +using std::ifstream; +using std::ofstream; +using std::fstream; +} + +class cl +{ +public: + using ifstream = cmsys::ifstream; + using ofstream = cmsys::ofstream; + using fstream = cmsys::fstream; +}; + +using ifs = cmsys::ifstream; +using ofs = cmsys::ofstream; +using fs = cmsys::fstream; +} + +int main() +{ + using std::ifstream; + using std::ofstream; + using std::fstream; + + // Correction needed + cmsys::ifstream ifsUnqual; + cmsys::ifstream ifsQual; + cmsys::ifstream ifsNS; + cmsys::ifstream ifsNested; + cmsys::ifstream ifsClass; + cmsys::ifstream ifsRenamed; + + cmsys::ofstream ofsUnqual; + cmsys::ofstream ofsQual; + cmsys::ofstream ofsNS; + cmsys::ofstream ofsNested; + cmsys::ofstream ofsClass; + cmsys::ofstream ofsRenamed; + + cmsys::fstream fsUnqual; + cmsys::fstream fsQual; + cmsys::fstream fsNS; + cmsys::fstream fsNested; + cmsys::fstream fsClass; + cmsys::fstream fsRenamed; + + cmsys::ifstream::off_type offsetQual = 0; + cmsys::ifstream::off_type offsetUnqual = 0; + cmsys::ifstream::off_type offsetNS = 0; + cmsys::ifstream::off_type offsetNested = 0; + cmsys::ifstream::traits_type::off_type offsetTraitsNested = 0; + cmsys::ifstream::traits_type::off_type offsetTraitsClass = 0; + + std::vector<cmsys::ifstream> ifsVectorUnqual; + + // No correction needed + cmsys::ifstream ifsCmsys; + cmsys::ofstream ofsCmsys; + cmsys::fstream fsCmsys; + cmsys::ifstream::off_type offsetCmsys = 0; + cmsys::ifstream::traits_type::off_type offsetTraitsCmsys = 0; + std::vector<cmsys::ifstream> ifsVectorCmsys; + std::basic_ifstream<wchar_t> ifsWchar; + + return 0; +} diff --git a/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream-stdout.txt b/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream-stdout.txt new file mode 100644 index 0000000..d2c45f2 --- /dev/null +++ b/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream-stdout.txt @@ -0,0 +1,155 @@ +cmake-use-cmsys-fstream.cxx:24:20: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + using ifstream = std::ifstream; + ^~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:24:20: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:25:20: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + using ofstream = std::ofstream; + ^~~~~~~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:25:20: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:26:19: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + using fstream = std::fstream; + ^~~~~~~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:26:19: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:29:13: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] +using ifs = std::ifstream; + ^~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:29:13: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:30:13: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] +using ofs = std::ofstream; + ^~~~~~~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:30:13: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:31:12: warning: use cmsys::fstream [cmake-use-cmsys-fstream] +using fs = std::fstream; + ^~~~~~~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:31:12: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:41:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ifstream ifsUnqual; + ^~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:41:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:42:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + std::ifstream ifsQual; + ^~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:42:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:43:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::ifstream ifsNS; + ^~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:43:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:44:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::ns::ifstream ifsNested; + ^~~~~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:44:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:45:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::cl::ifstream ifsClass; + ^~~~~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:45:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:46:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::ifs ifsRenamed; + ^~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:46:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:48:3: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + ofstream ofsUnqual; + ^~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:48:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:49:3: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + std::ofstream ofsQual; + ^~~~~~~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:49:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:50:3: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + ns::ofstream ofsNS; + ^~~~~~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:50:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:51:3: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + ns::ns::ofstream ofsNested; + ^~~~~~~~~~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:51:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:52:3: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + ns::cl::ofstream ofsClass; + ^~~~~~~~~~~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:52:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:53:3: warning: use cmsys::ofstream [cmake-use-cmsys-fstream] + ns::ofs ofsRenamed; + ^~~~~~~ + cmsys::ofstream +cmake-use-cmsys-fstream.cxx:53:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:55:3: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + fstream fsUnqual; + ^~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:55:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:56:3: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + std::fstream fsQual; + ^~~~~~~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:56:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:57:3: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + ns::fstream fsNS; + ^~~~~~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:57:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:58:3: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + ns::ns::fstream fsNested; + ^~~~~~~~~~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:58:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:59:3: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + ns::ns::fstream fsClass; + ^~~~~~~~~~~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:59:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:60:3: warning: use cmsys::fstream [cmake-use-cmsys-fstream] + ns::fs fsRenamed; + ^~~~~~ + cmsys::fstream +cmake-use-cmsys-fstream.cxx:60:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:62:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + std::ifstream::off_type offsetQual = 0; + ^~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:62:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:63:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ifstream::off_type offsetUnqual = 0; + ^~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:63:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:64:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::ifstream::off_type offsetNS = 0; + ^~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:64:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:65:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::ns::ifstream::off_type offsetNested = 0; + ^~~~~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:65:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:66:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::ns::ifstream::traits_type::off_type offsetTraitsNested = 0; + ^~~~~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:66:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:67:3: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + ns::cl::ifstream::traits_type::off_type offsetTraitsClass = 0; + ^~~~~~~~~~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:67:3: note: FIX-IT applied suggested code changes +cmake-use-cmsys-fstream.cxx:69:15: warning: use cmsys::ifstream [cmake-use-cmsys-fstream] + std::vector<ifstream> ifsVectorUnqual; + ^~~~~~~~ + cmsys::ifstream +cmake-use-cmsys-fstream.cxx:69:15: note: FIX-IT applied suggested code changes diff --git a/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream.cxx b/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream.cxx new file mode 100644 index 0000000..56a7611 --- /dev/null +++ b/Utilities/ClangTidyModule/Tests/cmake-use-cmsys-fstream.cxx @@ -0,0 +1,81 @@ +#include <fstream> +#include <vector> + +namespace cmsys { +using std::ifstream; +using std::ofstream; +using std::fstream; +} + +namespace ns { +using std::ifstream; +using std::ofstream; +using std::fstream; + +namespace ns { +using std::ifstream; +using std::ofstream; +using std::fstream; +} + +class cl +{ +public: + using ifstream = std::ifstream; + using ofstream = std::ofstream; + using fstream = std::fstream; +}; + +using ifs = std::ifstream; +using ofs = std::ofstream; +using fs = std::fstream; +} + +int main() +{ + using std::ifstream; + using std::ofstream; + using std::fstream; + + // Correction needed + ifstream ifsUnqual; + std::ifstream ifsQual; + ns::ifstream ifsNS; + ns::ns::ifstream ifsNested; + ns::cl::ifstream ifsClass; + ns::ifs ifsRenamed; + + ofstream ofsUnqual; + std::ofstream ofsQual; + ns::ofstream ofsNS; + ns::ns::ofstream ofsNested; + ns::cl::ofstream ofsClass; + ns::ofs ofsRenamed; + + fstream fsUnqual; + std::fstream fsQual; + ns::fstream fsNS; + ns::ns::fstream fsNested; + ns::ns::fstream fsClass; + ns::fs fsRenamed; + + std::ifstream::off_type offsetQual = 0; + ifstream::off_type offsetUnqual = 0; + ns::ifstream::off_type offsetNS = 0; + ns::ns::ifstream::off_type offsetNested = 0; + ns::ns::ifstream::traits_type::off_type offsetTraitsNested = 0; + ns::cl::ifstream::traits_type::off_type offsetTraitsClass = 0; + + std::vector<ifstream> ifsVectorUnqual; + + // No correction needed + cmsys::ifstream ifsCmsys; + cmsys::ofstream ofsCmsys; + cmsys::fstream fsCmsys; + cmsys::ifstream::off_type offsetCmsys = 0; + cmsys::ifstream::traits_type::off_type offsetTraitsCmsys = 0; + std::vector<cmsys::ifstream> ifsVectorCmsys; + std::basic_ifstream<wchar_t> ifsWchar; + + return 0; +} |