aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
diff options
context:
space:
mode:
authorJonathan Roelofs <jroelofs@jroelofs.com>2020-03-04 09:55:45 -0700
committerJonathan Roelofs <jroelofs@jroelofs.com>2020-03-09 15:54:32 -0600
commit1e0669bfe05f0f48ee88152c4a1d581f484f8d67 (patch)
tree7f93624f9b5f1e55d6b474a5860180b632c872ad /clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
parent6309334b9574017523f73648da879fa5e6ef017a (diff)
downloadllvm-1e0669bfe05f0f48ee88152c4a1d581f484f8d67.zip
llvm-1e0669bfe05f0f48ee88152c4a1d581f484f8d67.tar.gz
llvm-1e0669bfe05f0f48ee88152c4a1d581f484f8d67.tar.bz2
[clang-tidy] New check: bugprone-suspicious-include
Detects and fixes suspicious code like: `#include "foo.cpp"`. Inspired by: https://twitter.com/lefticus/status/1228458240364687360?s=20 https://reviews.llvm.org/D74669
Diffstat (limited to 'clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp b/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
index d6f4b2a..4eaf8bc 100644
--- a/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
+++ b/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
@@ -53,13 +53,20 @@ bool parseFileExtensions(StringRef AllFileExtensions,
return true;
}
-bool isFileExtension(StringRef FileName,
- const FileExtensionsSet &FileExtensions) {
+llvm::Optional<StringRef>
+getFileExtension(StringRef FileName, const FileExtensionsSet &FileExtensions) {
StringRef Extension = llvm::sys::path::extension(FileName);
if (Extension.empty())
- return false;
+ return llvm::None;
// Skip "." prefix.
- return FileExtensions.count(Extension.substr(1)) > 0;
+ if (!FileExtensions.count(Extension.substr(1)))
+ return llvm::None;
+ return Extension;
+}
+
+bool isFileExtension(StringRef FileName,
+ const FileExtensionsSet &FileExtensions) {
+ return getFileExtension(FileName, FileExtensions).hasValue();
}
} // namespace utils