From: Bart Van Assche Date: Wed, 2 Oct 2013 16:22:23 +0000 (+0000) Subject: drd/tests/annotate_smart_pointer: Avoid non-POD variable length arrays X-Git-Tag: svn/VALGRIND_3_9_0~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=625c6aa3dff1f961ecb56e1465628a1cd0b088d0;p=thirdparty%2Fvalgrind.git drd/tests/annotate_smart_pointer: Avoid non-POD variable length arrays Non-POD variable length arrays are supported by g++ but not by clang. Hence convert the variable length array in this test program into a vector. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13606 --- diff --git a/drd/tests/annotate_smart_pointer.cpp b/drd/tests/annotate_smart_pointer.cpp index bcf3a78403..4334302227 100644 --- a/drd/tests/annotate_smart_pointer.cpp +++ b/drd/tests/annotate_smart_pointer.cpp @@ -29,6 +29,7 @@ #include // PTHREAD_STACK_MIN #include // std::cerr #include // atoi() +#include #ifdef _WIN32 #include // _beginthreadex() #include // CRITICAL_SECTION @@ -311,12 +312,11 @@ int main(int argc, char** argv) for (int j = 0; j < iterations; ++j) { - Thread T[nthreads]; - + std::vector T(nthreads); smart_ptr p(new counter); p->post_increment(); - for (int i = 0; i < nthreads; ++i) - T[i].Create(thread_func, new smart_ptr(p)); + for (std::vector::iterator q = T.begin(); q != T.end(); q++) + q->Create(thread_func, new smart_ptr(p)); { // Avoid that counter.m_mutex introduces a false ordering on the // counter.m_count accesses. @@ -324,8 +324,8 @@ int main(int argc, char** argv) nanosleep(&delay, 0); } p = NULL; - for (int i = 0; i < nthreads; ++i) - T[i].Join(); + for (std::vector::iterator q = T.begin(); q != T.end(); q++) + q->Join(); } std::cerr << "Done.\n"; return 0;