diff options
Diffstat (limited to 'clang/test/Modules/new-delete.cpp')
-rw-r--r-- | clang/test/Modules/new-delete.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/Modules/new-delete.cpp b/clang/test/Modules/new-delete.cpp new file mode 100644 index 00000000000..585a242b224 --- /dev/null +++ b/clang/test/Modules/new-delete.cpp @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -fmodules -verify %s +// expected-no-diagnostics + +#pragma clang module build M +module M {} +#pragma clang module contents +#pragma clang module begin M +struct A { + A(); + ~A() { delete p; } // expected-warning {{'delete' applied to a pointer that was allocated with 'new[]'}} + int *p; +}; +inline A::A() : p(new int[32]) {} // expected-note {{allocated}} +struct B { + B(); + ~B() { delete p; } + int *p; +}; +#pragma clang module end +#pragma clang module endbuild + +#pragma clang module import M +B::B() : p(new int[32]) {} |