| // PR c++/85710 | |
| // { dg-additional-options -Wmemset-elt-size } | |
| #include <cstring> | |
| template <typename T> struct A { int a; }; | |
| void foo(A<int> (*ap)[2]) | |
| { | |
| std::memset (*ap, 0, 2); // no warning because A<int> is incomplete | |
| } | |
| template <typename T> | |
| class E | |
| { | |
| public: | |
| void Clear(); | |
| private: | |
| A<T> mA[2]; | |
| }; | |
| template<typename T> | |
| void E<T>::Clear() | |
| { | |
| std::memset(mA, 0, 2); // { dg-warning -Wmemset-elt-size } | |
| } | |
| int main() | |
| { | |
| E<int>().Clear(); | |
| } |