From cda672e7bd2e2d11bae1e4bf5d2dd4532a610ebd Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Fri, 3 Jun 2016 17:21:53 -0400 Subject: Fix include/wchar.h for C++ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When trying to compile regression tests that use C++ and the threads header you get this failure: In file included from /usr/include/c++/5.3.1/cwchar:44:0, from /usr/include/c++/5.3.1/bits/postypes.h:40, from /usr/include/c++/5.3.1/bits/char_traits.h:40, from /usr/include/c++/5.3.1/string:40, from /usr/include/c++/5.3.1/stdexcept:39, from /usr/include/c++/5.3.1/array:38, from /usr/include/c++/5.3.1/tuple:39, from /usr/include/c++/5.3.1/functional:55, from /usr/include/c++/5.3.1/thread:39, from tst-thread-quick_exit.cc:19: ../include/wchar.h:105:23: error: invalid conversion from ‘wchar_t* (*)(wchar_t*, wchar_t, size_t) throw () {aka wchar_t* (*)(wchar_t*, wchar_t, long unsigned int) throw ()}’ to ‘int’ [-fpermissive] extern typeof (wmemset) __wmemset; ^ ../include/wchar.h:105:25: error: expected ‘,’ or ‘;’ before ‘__wmemset’ extern typeof (wmemset) __wmemset; ^ The simplest fix for C++ is to avoid the use of typeof and just declare the prototype as expected. No regressions on x86_64. Committed as obvious. The include/wchar.h header is only for internal build uses and therefore is not ever seen by any external users and needs no bug #. --- ChangeLog | 4 ++++ include/wchar.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3e16edf9e8..fac360e464 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-06-03 Carlos O'Donell + + * include/wchar.h (__wmemset): Declare function without typeof. + 2016-06-03 Joseph Myers [BZ #20205] diff --git a/include/wchar.h b/include/wchar.h index 0f33d094ed..96b0438c4f 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -102,7 +102,7 @@ extern int __wcscoll (const wchar_t *__s1, const wchar_t *__s2) __THROW; libc_hidden_proto (__wcscoll) libc_hidden_proto (wcspbrk) -extern typeof (wmemset) __wmemset; +extern wchar_t *__wmemset (wchar_t *__s, wchar_t __c, size_t __n) __THROW; extern wchar_t *__wmemchr (const wchar_t *__s, wchar_t __c, size_t __n) __THROW __attribute_pure__; libc_hidden_proto (wmemchr) -- cgit 1.4.1