* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
@ 2015-11-11 17:18 Dominique d'Humières
2015-11-11 17:30 ` Jonathan Wakely
0 siblings, 1 reply; 9+ messages in thread
From: Dominique d'Humières @ 2015-11-11 17:18 UTC (permalink / raw)
To: ville.voutilainen; +Cc: gcc-patches, libstdc++
Revision r230175
> 2015-11-10 Ville Voutilainen <ville.voutilainen@gmail.com>
>
> LWG 2510, make the default constructors of library tag types
> explicit.
> * include/bits/mutex.h (defer_lock_t, try_lock_t,
> adopt_lock_t): Add an explicit default constructor.
> * include/bits/stl_pair.h (piecewise_construct_t): Likewise.
> * include/bits/uses_allocator.h (allocator_arg_t): Likewise.
> * libsupc++/new (nothrow_t): Likewise.
> * testsuite/17_intro/tag_type_explicit_ctor.cc: New.
breaks bootstrap
libtool: compile: /opt/gcc/build_w/./gcc/xgcc -shared-libgcc -B/opt/gcc/build_w/./gcc -nostdinc++ -L/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/src -L/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/src/.libs -L/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/libsupc++/.libs -B/opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/bin/ -B/opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/lib/ -isystem /opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/include -isystem /opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/sys-include -I/opt/gcc/work/libstdc++-v3/../libgcc -I/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/include/x86_64-apple-darwin14.5.0 -I/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/include -I/opt/gcc/work/libstdc++-v3/libsupc++ -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -frandom-seed=new_handler.lo -g -O2 -std=gnu++11 -c ../../../../work/libstdc++-v3/libsupc++/new_handler.cc -fno-common -DPIC -D_GLIBCXX_SHARED -o new_handler.o
../../../../work/libstdc++-v3/libsupc++/new_handler.cc:37:39: error: converting to 'std::nothrow_t' from initializer list would use explicit constructor 'constexpr std::nothrow_t::nothrow_t()'
const std::nothrow_t std::nothrow = { };
^
see https://gcc.gnu.org/ml/gcc-regression/2015-11/
Dominique
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-11 17:18 [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit Dominique d'Humières
@ 2015-11-11 17:30 ` Jonathan Wakely
2015-11-12 14:23 ` Gerald Pfeifer
0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Wakely @ 2015-11-11 17:30 UTC (permalink / raw)
To: Dominique d'Humières; +Cc: ville.voutilainen, gcc-patches, libstdc++
[-- Attachment #1: Type: text/plain, Size: 2088 bytes --]
On 11/11/15 18:17 +0100, Dominique d'Humières wrote:
>Revision r230175
>
>> 2015-11-10 Ville Voutilainen <ville.voutilainen@gmail.com>
>>
>> LWG 2510, make the default constructors of library tag types
>> explicit.
>> * include/bits/mutex.h (defer_lock_t, try_lock_t,
>> adopt_lock_t): Add an explicit default constructor.
>> * include/bits/stl_pair.h (piecewise_construct_t): Likewise.
>> * include/bits/uses_allocator.h (allocator_arg_t): Likewise.
>> * libsupc++/new (nothrow_t): Likewise.
>> * testsuite/17_intro/tag_type_explicit_ctor.cc: New.
>
> breaks bootstrap
>
>libtool: compile: /opt/gcc/build_w/./gcc/xgcc -shared-libgcc -B/opt/gcc/build_w/./gcc -nostdinc++ -L/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/src -L/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/src/.libs -L/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/libsupc++/.libs -B/opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/bin/ -B/opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/lib/ -isystem /opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/include -isystem /opt/gcc/gcc6w/x86_64-apple-darwin14.5.0/sys-include -I/opt/gcc/work/libstdc++-v3/../libgcc -I/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/include/x86_64-apple-darwin14.5.0 -I/opt/gcc/build_w/x86_64-apple-darwin14.5.0/libstdc++-v3/include -I/opt/gcc/work/libstdc++-v3/libsupc++ -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -frandom-seed=new_handler.lo -g -O2 -std=gnu++11 -c ../../../../work/libstdc++-v3/libsupc++/new_handler.cc -fno-common -DPIC -D_GLIBCXX_SHARED -o new_handler.o
>../../../../work/libstdc++-v3/libsupc++/new_handler.cc:37:39: error: converting to 'std::nothrow_t' from initializer list would use explicit constructor 'constexpr std::nothrow_t::nothrow_t()'
> const std::nothrow_t std::nothrow = { };
> ^
>see https://gcc.gnu.org/ml/gcc-regression/2015-11/
Fixed by this patch.
[-- Attachment #2: patch.txt --]
[-- Type: text/x-patch, Size: 590 bytes --]
commit 97c2da9d4cc11bd5dae077ccb5fda4e72f7c34d5
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Nov 11 17:27:23 2015 +0000
* libsupc++/new_handler.cc: Fix for explicit constructor change.
diff --git a/libstdc++-v3/libsupc++/new_handler.cc b/libstdc++-v3/libsupc++/new_handler.cc
index a09012c..4da48b3 100644
--- a/libstdc++-v3/libsupc++/new_handler.cc
+++ b/libstdc++-v3/libsupc++/new_handler.cc
@@ -34,7 +34,7 @@ namespace
}
#endif
-const std::nothrow_t std::nothrow = { };
+const std::nothrow_t std::nothrow = std::nothrow_t{ };
using std::new_handler;
namespace
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-11 17:30 ` Jonathan Wakely
@ 2015-11-12 14:23 ` Gerald Pfeifer
2015-11-12 14:27 ` Ville Voutilainen
2015-11-12 14:36 ` Jonathan Wakely
0 siblings, 2 replies; 9+ messages in thread
From: Gerald Pfeifer @ 2015-11-12 14:23 UTC (permalink / raw)
To: Jonathan Wakely
Cc: Dominique d'Humières, ville.voutilainen, gcc-patches, libstdc++
[-- Attachment #1: Type: text/plain, Size: 930 bytes --]
On Wed, 11 Nov 2015, Jonathan Wakely wrote:
> Fixed by this patch.
Thanks, Jonathan! Unfortunately bootstrap is still broken
(on i386-unknown-freebsd11.0 at least):
In file included from
/scratch/tmp/gerald/gcc-HEAD/libstdc++-v3/src/c++11/thread.cc:27:0:
/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
thread: In function âvoid std::this_thread::sleep_for(const std::chrono::duration<_Rep1, _Period1>&)â:
/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
thread:300:44: error: âerrnoâ was not declared in this scope
while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
^
/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
thread:300:53: error: âEINTRâ was not declared in this scope
while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
Gerald
[-- Attachment #2: Type: text/x-patch, Size: 590 bytes --]
commit 97c2da9d4cc11bd5dae077ccb5fda4e72f7c34d5
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Nov 11 17:27:23 2015 +0000
* libsupc++/new_handler.cc: Fix for explicit constructor change.
diff --git a/libstdc++-v3/libsupc++/new_handler.cc b/libstdc++-v3/libsupc++/new_handler.cc
index a09012c..4da48b3 100644
--- a/libstdc++-v3/libsupc++/new_handler.cc
+++ b/libstdc++-v3/libsupc++/new_handler.cc
@@ -34,7 +34,7 @@ namespace
}
#endif
-const std::nothrow_t std::nothrow = { };
+const std::nothrow_t std::nothrow = std::nothrow_t{ };
using std::new_handler;
namespace
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-12 14:23 ` Gerald Pfeifer
@ 2015-11-12 14:27 ` Ville Voutilainen
2015-11-12 14:36 ` Jonathan Wakely
1 sibling, 0 replies; 9+ messages in thread
From: Ville Voutilainen @ 2015-11-12 14:27 UTC (permalink / raw)
To: Gerald Pfeifer
Cc: Jonathan Wakely, Dominique d'Humières, gcc-patches, libstdc++
On 12 November 2015 at 16:23, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> On Wed, 11 Nov 2015, Jonathan Wakely wrote:
>>
>> Fixed by this patch.
>
>
> Thanks, Jonathan! Unfortunately bootstrap is still broken
> (on i386-unknown-freebsd11.0 at least):
>
> In file included from
> /scratch/tmp/gerald/gcc-HEAD/libstdc++-v3/src/c++11/thread.cc:27:0:
> /scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
> thread: In function ‘void std::this_thread::sleep_for(const
> std::chrono::duration<_Rep1, _Period1>&)’:
> /scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
> thread:300:44: error: ‘errno’ was not declared in this scope
> while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
> ^
> /scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
> thread:300:53: error: ‘EINTR’ was not declared in this scope
> while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
Note that that's a separate problem that has nothing to do with the
tag-type-explicit-default-ctor
patch.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-12 14:23 ` Gerald Pfeifer
2015-11-12 14:27 ` Ville Voutilainen
@ 2015-11-12 14:36 ` Jonathan Wakely
2015-11-12 16:13 ` Jonathan Wakely
1 sibling, 1 reply; 9+ messages in thread
From: Jonathan Wakely @ 2015-11-12 14:36 UTC (permalink / raw)
To: Gerald Pfeifer
Cc: Dominique d'Humières, ville.voutilainen, gcc-patches, libstdc++
On 12/11/15 15:23 +0100, Gerald Pfeifer wrote:
>On Wed, 11 Nov 2015, Jonathan Wakely wrote:
>>Fixed by this patch.
>
>Thanks, Jonathan! Unfortunately bootstrap is still broken
>(on i386-unknown-freebsd11.0 at least):
Different issue.
>In file included from
>/scratch/tmp/gerald/gcc-HEAD/libstdc++-v3/src/c++11/thread.cc:27:0:
>/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
>thread: In function âvoid std::this_thread::sleep_for(const std::chrono::duration<_Rep1, _Period1>&)â:
>/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
>thread:300:44: error: âerrnoâ was not declared in this scope
> while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
> ^
>/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
>thread:300:53: error: âEINTRâ was not declared in this scope
> while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
Does adding #include <errno.h> to libstdc++-v3/include/std/thread
solve it?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-12 14:36 ` Jonathan Wakely
@ 2015-11-12 16:13 ` Jonathan Wakely
2015-11-12 16:19 ` Gerald Pfeifer
0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Wakely @ 2015-11-12 16:13 UTC (permalink / raw)
To: Gerald Pfeifer
Cc: Dominique d'Humières, ville.voutilainen, gcc-patches, libstdc++
[-- Attachment #1: Type: text/plain, Size: 1168 bytes --]
On 12/11/15 14:36 +0000, Jonathan Wakely wrote:
>On 12/11/15 15:23 +0100, Gerald Pfeifer wrote:
>>On Wed, 11 Nov 2015, Jonathan Wakely wrote:
>>>Fixed by this patch.
>>
>>Thanks, Jonathan! Unfortunately bootstrap is still broken
>>(on i386-unknown-freebsd11.0 at least):
>
>Different issue.
>
>>In file included from
>>/scratch/tmp/gerald/gcc-HEAD/libstdc++-v3/src/c++11/thread.cc:27:0:
>>/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
>>thread: In function âvoid std::this_thread::sleep_for(const std::chrono::duration<_Rep1, _Period1>&)â:
>>/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
>>thread:300:44: error: âerrnoâ was not declared in this scope
>>while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
>> ^
>>/scratch/tmp/gerald/OBJ-1112-1414/i386-unknown-freebsd10.2/libstdc++-v3/include/
>>thread:300:53: error: âEINTRâ was not declared in this scope
>>while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR)
>
>Does adding #include <errno.h> to libstdc++-v3/include/std/thread
>solve it?
Committed to trunk.
[-- Attachment #2: patch.txt --]
[-- Type: text/x-patch, Size: 562 bytes --]
commit ede84363f2a4374b0d16ffda19fbcffdc44221c3
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Nov 12 15:21:24 2015 +0000
* include/std/thread: Include <cerrno> for EINTR.
diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread
index 5940e6e..8c01feb 100644
--- a/libstdc++-v3/include/std/thread
+++ b/libstdc++-v3/include/std/thread
@@ -38,6 +38,7 @@
#include <chrono>
#include <functional>
#include <memory>
+#include <cerrno>
#include <bits/functexcept.h>
#include <bits/functional_hash.h>
#include <bits/gthr.h>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-12 16:13 ` Jonathan Wakely
@ 2015-11-12 16:19 ` Gerald Pfeifer
0 siblings, 0 replies; 9+ messages in thread
From: Gerald Pfeifer @ 2015-11-12 16:19 UTC (permalink / raw)
To: Ville Voutilainen, Jonathan Wakely
Cc: Dominique d'Humières, gcc-patches, libstdc++
On Thu, 12 Nov 2015, Ville Voutilainen wrote:
> Note that that's a separate problem that has nothing to do with the
> tag-type-explicit-default-ctor patch.
On Thu, 12 Nov 2015, Jonathan Wakely wrote:
> Different issue.
Sorry, I had two different libstdc++ bootstrap failures in the
last 24 hours, and misassociated this one.
> Does adding #include <errno.h> to libstdc++-v3/include/std/thread
> solve it?
Yep, that worked.
On Thu, 12 Nov 2015, Jonathan Wakely wrote:
> Committed to trunk.
Thanks!
Gerald
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
2015-11-10 20:01 Ville Voutilainen
@ 2015-11-11 14:17 ` Jonathan Wakely
0 siblings, 0 replies; 9+ messages in thread
From: Jonathan Wakely @ 2015-11-11 14:17 UTC (permalink / raw)
To: Ville Voutilainen; +Cc: gcc-patches, libstdc++
On 10/11/15 22:01 +0200, Ville Voutilainen wrote:
> LWG 2510, make the default constructors of library tag types
> explicit.
> * include/bits/mutex.h (defer_lock_t, try_lock_t,
> adopt_lock_t): Add an explicit default constructor.
> * include/bits/stl_pair.h (piecewise_construct_t): Likewise.
> * include/bits/uses_allocator.h (allocator_arg_t): Likewise.
> * libsupc++/new (nothrow_t): Likewise.
> * testsuite/17_intro/tag_type_explicit_ctor.cc: New.
OK for trunk, thanks.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
@ 2015-11-10 20:01 Ville Voutilainen
2015-11-11 14:17 ` Jonathan Wakely
0 siblings, 1 reply; 9+ messages in thread
From: Ville Voutilainen @ 2015-11-10 20:01 UTC (permalink / raw)
To: gcc-patches, libstdc++
[-- Attachment #1: Type: text/plain, Size: 503 bytes --]
Tested on Linux-X64.
2015-11-10 Ville Voutilainen <ville.voutilainen@gmail.com>
LWG 2510, make the default constructors of library tag types
explicit.
* include/bits/mutex.h (defer_lock_t, try_lock_t,
adopt_lock_t): Add an explicit default constructor.
* include/bits/stl_pair.h (piecewise_construct_t): Likewise.
* include/bits/uses_allocator.h (allocator_arg_t): Likewise.
* libsupc++/new (nothrow_t): Likewise.
* testsuite/17_intro/tag_type_explicit_ctor.cc: New.
[-- Attachment #2: lwg2510.diff --]
[-- Type: text/plain, Size: 4607 bytes --]
diff --git a/libstdc++-v3/include/bits/mutex.h b/libstdc++-v3/include/bits/mutex.h
index 43f5b0b..dd27989 100644
--- a/libstdc++-v3/include/bits/mutex.h
+++ b/libstdc++-v3/include/bits/mutex.h
@@ -129,14 +129,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif // _GLIBCXX_HAS_GTHREADS
/// Do not acquire ownership of the mutex.
- struct defer_lock_t { };
+ struct defer_lock_t { explicit defer_lock_t() = default; };
/// Try to acquire ownership of the mutex without blocking.
- struct try_to_lock_t { };
+ struct try_to_lock_t { explicit try_to_lock_t() = default; };
/// Assume the calling thread has already obtained mutex ownership
/// and manage it.
- struct adopt_lock_t { };
+ struct adopt_lock_t { explicit adopt_lock_t() = default; };
constexpr defer_lock_t defer_lock { };
constexpr try_to_lock_t try_to_lock { };
diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h
index dfcd357..d6f6b86 100644
--- a/libstdc++-v3/include/bits/stl_pair.h
+++ b/libstdc++-v3/include/bits/stl_pair.h
@@ -73,7 +73,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus >= 201103L
/// piecewise_construct_t
- struct piecewise_construct_t { };
+ struct piecewise_construct_t { explicit piecewise_construct_t() = default; };
/// piecewise_construct
constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
diff --git a/libstdc++-v3/include/bits/uses_allocator.h b/libstdc++-v3/include/bits/uses_allocator.h
index f9ea7d6..a0f084d 100644
--- a/libstdc++-v3/include/bits/uses_allocator.h
+++ b/libstdc++-v3/include/bits/uses_allocator.h
@@ -36,7 +36,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
_GLIBCXX_BEGIN_NAMESPACE_VERSION
/// [allocator.tag]
- struct allocator_arg_t { };
+ struct allocator_arg_t { explicit allocator_arg_t() = default; };
constexpr allocator_arg_t allocator_arg = allocator_arg_t();
diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new
index 0f6a05a..8621f73 100644
--- a/libstdc++-v3/libsupc++/new
+++ b/libstdc++-v3/libsupc++/new
@@ -79,7 +79,12 @@ namespace std
};
#endif
- struct nothrow_t { };
+ struct nothrow_t
+ {
+#if __cplusplus >= 201103L
+ explicit nothrow_t() = default;
+#endif
+ };
extern const nothrow_t nothrow;
diff --git a/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc b/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
new file mode 100644
index 0000000..4b9d217
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
@@ -0,0 +1,60 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// Copyright (C) 2015 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 <new>
+#include <utility>
+#include <memory>
+#include <mutex>
+
+void f1(std::nothrow_t);
+void f2(std::piecewise_construct_t);
+void f3(std::allocator_arg_t);
+void f4(std::defer_lock_t);
+void f5(std::try_to_lock_t);
+void f6(std::adopt_lock_t);
+
+
+int main()
+{
+ std::nothrow_t v1;
+ std::piecewise_construct_t v2;
+ std::allocator_arg_t v3;
+ std::defer_lock_t v4;
+ std::try_to_lock_t v5;
+ std::try_to_lock_t v6;
+ std::nothrow_t v7 = {}; // { dg-error "explicit" }
+ std::piecewise_construct_t v8 = {}; // { dg-error "explicit" }
+ std::allocator_arg_t v9 = {}; // { dg-error "explicit" }
+ std::defer_lock_t v10 = {}; // { dg-error "explicit" }
+ std::try_to_lock_t v11 = {}; // { dg-error "explicit" }
+ std::try_to_lock_t v12 = {}; // { dg-error "explicit" }
+ f1(std::nothrow_t{});
+ f2(std::piecewise_construct_t{});
+ f3(std::allocator_arg_t{});
+ f4(std::defer_lock_t{});
+ f5(std::try_to_lock_t{});
+ f6(std::adopt_lock_t{});
+ f1({}); // { dg-error "explicit" }
+ f2({}); // { dg-error "explicit" }
+ f3({}); // { dg-error "explicit" }
+ f4({}); // { dg-error "explicit" }
+ f5({}); // { dg-error "explicit" }
+ f6({}); // { dg-error "explicit" }
+}
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-11-12 16:19 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-11 17:18 [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit Dominique d'Humières
2015-11-11 17:30 ` Jonathan Wakely
2015-11-12 14:23 ` Gerald Pfeifer
2015-11-12 14:27 ` Ville Voutilainen
2015-11-12 14:36 ` Jonathan Wakely
2015-11-12 16:13 ` Jonathan Wakely
2015-11-12 16:19 ` Gerald Pfeifer
-- strict thread matches above, loose matches on Subject: below --
2015-11-10 20:01 Ville Voutilainen
2015-11-11 14:17 ` Jonathan Wakely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).