1 // PR c++/85710
2 // { dg-additional-options -Wmemset-elt-size }
3 
4 #include <cstring>
5 
6 template <typename T> struct A { int a; };
7 
foo(A<int> (* ap)[2])8 void foo(A<int> (*ap)[2])
9 {
10   std::memset (*ap, 0, 2);	// no warning because A<int> is incomplete
11 }
12 
13 template <typename T>
14 class E
15 {
16 public:
17   void Clear();
18 private:
19   A<T> mA[2];
20 };
21 
22 template<typename T>
Clear()23 void E<T>::Clear()
24 {
25   std::memset(mA, 0, 2);	// { dg-warning -Wmemset-elt-size }
26 }
27 
main()28 int main()
29 {
30   E<int>().Clear();
31 }
32