[PATCH] Add a test for std::condition_variable_any
Marek Polacek
polacek@redhat.com
Thu Jul 26 20:03:00 GMT 2018
We've been carrying this test internally for quite some time and I think it
would be beneficial for everyone to include it in the upstream testsuite, too.
Tested on x86_64-linux, ok for trunk and 8.3?
2018-07-26 Marek Polacek <polacek@redhat.com>
* 30_threads/condition_variable_any/cond.cc: New test.
--- gcc/testsuite/30_threads/condition_variable_any/cond.cc
+++ gcc/testsuite/30_threads/condition_variable_any/cond.cc
@@ -0,0 +1,35 @@
+// { dg-do run }
+// { dg-options "-pthread" }
+// { dg-require-effective-target c++11 }
+// { dg-require-effective-target pthread }
+// { dg-require-gthreads "" }
+
+// Copyright (C) 2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <condition_variable>
+#include <cstring>
+
+int main()
+{
+ const size_t sz = sizeof(std::condition_variable_any);
+ char garbage[sz];
+ memset(garbage, 0xff, sz);
+ auto cond = new ((void*)garbage) std::condition_variable_any();
+ cond->notify_all();
+ cond->~condition_variable_any();
+}
More information about the Libstdc++
mailing list