summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/warn/Wplacement-new-size-11.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/warn/Wplacement-new-size-11.C')
-rw-r--r--gcc/testsuite/g++.dg/warn/Wplacement-new-size-11.C15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/warn/Wplacement-new-size-11.C b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-11.C
new file mode 100644
index 00000000000..a6fe82e90ae
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wplacement-new-size-11.C
@@ -0,0 +1,15 @@
+// PR c++/100370
+// { dg-do compile { target c++11 } }
+
+using size_t = decltype(sizeof(1));
+inline void *operator new (size_t s, void *p) { return p; }
+
+int main()
+{
+ struct s1 { int iv[4]; };
+ struct s2 { union { char* cp; int* ip; }; };
+
+ s2 b;
+ b.ip=new int[8];
+ new (b.ip+4) s1; // { dg-bogus "-Wplacement-new" }
+}