summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/instantiate-new-placement-size.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/instantiate-new-placement-size.cpp')
-rw-r--r--clang/test/SemaCXX/instantiate-new-placement-size.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/instantiate-new-placement-size.cpp b/clang/test/SemaCXX/instantiate-new-placement-size.cpp
new file mode 100644
index 000000000000..7a29d3dee849
--- /dev/null
+++ b/clang/test/SemaCXX/instantiate-new-placement-size.cpp
@@ -0,0 +1,20 @@
+// RUN: %clang -S -fno-discard-value-names -emit-llvm -o - %s | FileCheck %s
+// Issue no: 41441
+#include <new>
+
+// CHECK: call void @llvm.memset.p0.i64(ptr align 1 %x, i8 0, i64 8, i1 false)
+// CHECK: call void @llvm.memset.p0.i64(ptr align 16 %x, i8 0, i64 32, i1 false)
+template <typename TYPE>
+void f()
+{
+ typedef TYPE TArray[8];
+
+ TArray x;
+ new(&x) TArray();
+}
+
+int main()
+{
+ f<char>();
+ f<int>();
+}