This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [v3] mutex vs. cstdatomic
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: Paolo Carlini <paolo dot carlini at oracle dot com>
- Cc: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org, Jack Howarth <howarth at bromo dot med dot uc dot edu>
- Date: Sat, 13 Dec 2008 12:05:25 -0800
- Subject: Re: [v3] mutex vs. cstdatomic
- References: <20081212232738.0db851ec@balbo.artheist.org> <49437736.4000906@oracle.com>
> Most likely I'm saying the obvious, but certainly the above should be
> further investigated: if the facilities in <cstdatomic> explicitly
> require the facilities in <mutex>, then the latter should be included
> explicitely by the former, otherwise, if it's because of an
> implementation detail, that is <mutex> includes something that
> <cstdatomic> also happen to need and at the moment doesn't include by
> mistake, that should be also fixed ASAP.
Here's the fix, in at revision 142742.
-benjamin
Tested x86_64/linux
tested x86/darwin9.5.0
2008-12-13 Benjamin Kosnik <bkoz@redhat.com>
* src/atomic.cc: Revert last change.
* include/bits/atomic_2.h: Move cassert include to...
* include/c_global/cstdatomic: ...here.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Adjust line numbers.
Index: src/atomic.cc
===================================================================
--- src/atomic.cc (revision 142740)
+++ src/atomic.cc (working copy)
@@ -29,8 +29,8 @@
// the GNU General Public License.
#include "gstdint.h"
+#include <cstdatomic>
#include <mutex>
-#include <cstdatomic>
#define LOGSIZE 4
Index: include/bits/atomic_2.h
===================================================================
--- include/bits/atomic_2.h (revision 142740)
+++ include/bits/atomic_2.h (working copy)
@@ -38,8 +38,6 @@
#pragma GCC system_header
-#include <cassert> // XXX static_assert vs. constant-expression PR38502
-
// _GLIBCXX_BEGIN_NAMESPACE(std)
// 2 == __atomic2 == Always lock-free
Index: include/c_global/cstdatomic
===================================================================
--- include/c_global/cstdatomic (revision 142740)
+++ include/c_global/cstdatomic (working copy)
@@ -52,6 +52,7 @@
#include <stdatomic.h>
#include <cstddef>
+#include <cassert> // XXX static_assert vs. constant-expression PR38502
_GLIBCXX_BEGIN_NAMESPACE(std)
Index: testsuite/29_atomics/atomic/cons/assign_neg.cc
===================================================================
--- testsuite/29_atomics/atomic/cons/assign_neg.cc (revision 142740)
+++ testsuite/29_atomics/atomic/cons/assign_neg.cc (working copy)
@@ -39,19 +39,19 @@
}
// { dg-error "used here" "" { target *-*-* } 510 }
-// { dg-error "deleted function" "" { target *-*-* } 257 }
-// { dg-error "deleted function" "" { target *-*-* } 275 }
-// { dg-error "deleted function" "" { target *-*-* } 293 }
-// { dg-error "deleted function" "" { target *-*-* } 311 }
-// { dg-error "deleted function" "" { target *-*-* } 329 }
-// { dg-error "deleted function" "" { target *-*-* } 347 }
-// { dg-error "deleted function" "" { target *-*-* } 365 }
-// { dg-error "deleted function" "" { target *-*-* } 383 }
-// { dg-error "deleted function" "" { target *-*-* } 401 }
-// { dg-error "deleted function" "" { target *-*-* } 419 }
-// { dg-error "deleted function" "" { target *-*-* } 437 }
-// { dg-error "deleted function" "" { target *-*-* } 455 }
-// { dg-error "deleted function" "" { target *-*-* } 473 }
-// { dg-error "deleted function" "" { target *-*-* } 491 }
-// { dg-error "deleted function" "" { target *-*-* } 239 }
+// { dg-error "deleted function" "" { target *-*-* } 240 }
+// { dg-error "deleted function" "" { target *-*-* } 258 }
+// { dg-error "deleted function" "" { target *-*-* } 276 }
+// { dg-error "deleted function" "" { target *-*-* } 294 }
+// { dg-error "deleted function" "" { target *-*-* } 312 }
+// { dg-error "deleted function" "" { target *-*-* } 330 }
+// { dg-error "deleted function" "" { target *-*-* } 348 }
+// { dg-error "deleted function" "" { target *-*-* } 366 }
+// { dg-error "deleted function" "" { target *-*-* } 384 }
+// { dg-error "deleted function" "" { target *-*-* } 402 }
+// { dg-error "deleted function" "" { target *-*-* } 420 }
+// { dg-error "deleted function" "" { target *-*-* } 438 }
+// { dg-error "deleted function" "" { target *-*-* } 456 }
+// { dg-error "deleted function" "" { target *-*-* } 474 }
+// { dg-error "deleted function" "" { target *-*-* } 492 }
// { dg-excess-errors "In member function" }
Index: testsuite/29_atomics/atomic/cons/copy_neg.cc
===================================================================
--- testsuite/29_atomics/atomic/cons/copy_neg.cc (revision 142740)
+++ testsuite/29_atomics/atomic/cons/copy_neg.cc (working copy)
@@ -39,19 +39,19 @@
}
// { dg-error "used here" "" { target *-*-* } 549 }
-// { dg-error "deleted function" "" { target *-*-* } 238 }
-// { dg-error "deleted function" "" { target *-*-* } 256 }
-// { dg-error "deleted function" "" { target *-*-* } 274 }
-// { dg-error "deleted function" "" { target *-*-* } 292 }
-// { dg-error "deleted function" "" { target *-*-* } 310 }
-// { dg-error "deleted function" "" { target *-*-* } 328 }
-// { dg-error "deleted function" "" { target *-*-* } 346 }
-// { dg-error "deleted function" "" { target *-*-* } 364 }
-// { dg-error "deleted function" "" { target *-*-* } 382 }
-// { dg-error "deleted function" "" { target *-*-* } 400 }
-// { dg-error "deleted function" "" { target *-*-* } 418 }
-// { dg-error "deleted function" "" { target *-*-* } 436 }
-// { dg-error "deleted function" "" { target *-*-* } 454 }
-// { dg-error "deleted function" "" { target *-*-* } 472 }
-// { dg-error "deleted function" "" { target *-*-* } 490 }
+// { dg-error "deleted function" "" { target *-*-* } 239 }
+// { dg-error "deleted function" "" { target *-*-* } 257 }
+// { dg-error "deleted function" "" { target *-*-* } 275 }
+// { dg-error "deleted function" "" { target *-*-* } 293 }
+// { dg-error "deleted function" "" { target *-*-* } 311 }
+// { dg-error "deleted function" "" { target *-*-* } 329 }
+// { dg-error "deleted function" "" { target *-*-* } 347 }
+// { dg-error "deleted function" "" { target *-*-* } 365 }
+// { dg-error "deleted function" "" { target *-*-* } 383 }
+// { dg-error "deleted function" "" { target *-*-* } 401 }
+// { dg-error "deleted function" "" { target *-*-* } 419 }
+// { dg-error "deleted function" "" { target *-*-* } 437 }
+// { dg-error "deleted function" "" { target *-*-* } 455 }
+// { dg-error "deleted function" "" { target *-*-* } 473 }
+// { dg-error "deleted function" "" { target *-*-* } 491 }
// { dg-excess-errors "In member function" }