summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/readability-uniqueptr-delete-release.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/readability-uniqueptr-delete-release.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-uniqueptr-delete-release.cpp76
1 files changed, 0 insertions, 76 deletions
diff --git a/clang-tools-extra/test/clang-tidy/readability-uniqueptr-delete-release.cpp b/clang-tools-extra/test/clang-tidy/readability-uniqueptr-delete-release.cpp
deleted file mode 100644
index bd51bc62dba..00000000000
--- a/clang-tools-extra/test/clang-tidy/readability-uniqueptr-delete-release.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// RUN: %check_clang_tidy %s readability-uniqueptr-delete-release %t
-
-namespace std {
-template <typename T>
-struct default_delete {};
-
-template <typename T, typename D = default_delete<T>>
-class unique_ptr {
- public:
- unique_ptr();
- ~unique_ptr();
- explicit unique_ptr(T*);
- template <typename U, typename E>
- unique_ptr(unique_ptr<U, E>&&);
- T* release();
-};
-} // namespace std
-
-std::unique_ptr<int>& ReturnsAUnique();
-
-void Positives() {
- std::unique_ptr<int> P;
- delete P.release();
- // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer '= nullptr' to 'delete x.release()' to reset unique_ptr<> objects [readability-uniqueptr-delete-release]
- // CHECK-FIXES: {{^}} P = nullptr;
-
- auto P2 = P;
- delete P2.release();
- // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer '= nullptr' to 'delete x.release()' to reset unique_ptr<> objects [readability-uniqueptr-delete-release]
- // CHECK-FIXES: {{^}} P2 = nullptr;
-
- std::unique_ptr<int> Array[20];
- delete Array[4].release();
- // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer '= nullptr' to 'delete
- // CHECK-FIXES: {{^}} Array[4] = nullptr;
-
- delete ReturnsAUnique().release();
- // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer '= nullptr' to 'delete
- // CHECK-FIXES: {{^}} ReturnsAUnique() = nullptr;
-}
-
-struct NotDefaultDeleter {};
-
-struct NotUniquePtr {
- int* release();
-};
-
-void Negatives() {
- std::unique_ptr<int, NotDefaultDeleter> P;
- delete P.release();
-
- NotUniquePtr P2;
- delete P2.release();
-}
-
-template <typename T, typename D>
-void NegativeDeleterT() {
- // Ideally this would trigger a warning, but we have all dependent types
- // disabled for now.
- std::unique_ptr<T> P;
- delete P.release();
-
- // We ignore this one because the deleter is a template argument.
- // Not all instantiations will use the default deleter.
- std::unique_ptr<int, D> P2;
- delete P2.release();
-}
-template void NegativeDeleterT<int, std::default_delete<int>>();
-
-// Test some macros
-
-#define DELETE_RELEASE(x) delete (x).release()
-void NegativesWithTemplate() {
- std::unique_ptr<int> P;
- DELETE_RELEASE(P);
-}
OpenPOWER on IntegriCloud