This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Jonathan Wakely <jwakely at redhat dot com>
- Cc: Dominique d'Humières <dominiq at lps dot ens dot fr>, ville dot voutilainen at gmail dot com, gcc-patches <gcc-patches at gcc dot gnu dot org>, libstdc++ at gcc dot gnu dot org
- Date: Thu, 12 Nov 2015 15:23:44 +0100 (CET)
- Subject: Re: [v3 PATCH] LWG 2510, make the default constructors of library tag types explicit.
- Authentication-results: sourceware.org; auth=none
- References: <50707C06-EB02-4B6B-A84C-40204207C07B at lps dot ens dot fr> <20151111173006 dot GP2937 at redhat dot com>
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
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