linux-packaging-mono/external/llvm-project/clang-tools-extra/test/clang-tidy/misc-new-delete-overloads-sized-dealloc.cpp
Xamarin Public Jenkins (auto-signing) 468663ddbb Imported Upstream version 6.10.0.49
Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
2020-01-16 16:38:04 +00:00

21 lines
930 B
C++

// RUN: %check_clang_tidy %s misc-new-delete-overloads %t -- -- -std=c++14 -fsized-deallocation
typedef decltype(sizeof(int)) size_t;
struct S {
// CHECK-MESSAGES: :[[@LINE+1]]:8: warning: declaration of 'operator delete' has no matching declaration of 'operator new' at the same scope [misc-new-delete-overloads]
void operator delete(void *ptr, size_t) noexcept; // not a placement delete
};
struct T {
// Because we have enabled sized deallocations explicitly, this new/delete
// pair matches.
void *operator new(size_t size) noexcept;
void operator delete(void *ptr, size_t) noexcept; // ok because sized deallocation is enabled
};
// While we're here, check that global operator delete with no operator new
// is also matched.
// CHECK-MESSAGES: :[[@LINE+1]]:6: warning: declaration of 'operator delete' has no matching declaration of 'operator new' at the same scope
void operator delete(void *ptr) noexcept;