diff options
Diffstat (limited to 'test/Analysis/malloc.cpp')
-rw-r--r-- | test/Analysis/malloc.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Analysis/malloc.cpp b/test/Analysis/malloc.cpp index b93c73e591..6e5a0e4d59 100644 --- a/test/Analysis/malloc.cpp +++ b/test/Analysis/malloc.cpp @@ -141,3 +141,26 @@ char* test_cxa_demangle(const char* sym) { } return funcname; // no-warning } + +namespace argument_leak { +class A { + char *name; + +public: + char *getName() { + if (!name) { + name = static_cast<char *>(malloc(10)); + } + return name; + } + ~A() { + if (name) { + delete[] name; + } + } +}; + +void test(A a) { + (void)a.getName(); +} +} // namespace argument_leak |