summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/new-delete.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Modules/new-delete.cpp')
-rw-r--r--clang/test/Modules/new-delete.cpp23
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]) {}
OpenPOWER on IntegriCloud