about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2016-06-03 17:21:53 -0400
committerCarlos O'Donell <carlos@redhat.com>2016-06-03 20:10:04 -0400
commitcda672e7bd2e2d11bae1e4bf5d2dd4532a610ebd (patch)
tree48d61e291123bb21099387ea0c5340d08d321ce8
parent8cbd1453ec1c59e54652edcd88256f4023ff77b9 (diff)
downloadglibc-cda672e7bd2e2d11bae1e4bf5d2dd4532a610ebd.tar.gz
glibc-cda672e7bd2e2d11bae1e4bf5d2dd4532a610ebd.tar.xz
glibc-cda672e7bd2e2d11bae1e4bf5d2dd4532a610ebd.zip
Fix include/wchar.h for C++
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 #.
-rw-r--r--ChangeLog4
-rw-r--r--include/wchar.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3e16edf9e8..fac360e464 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-06-03  Carlos O'Donell  <carlos@redhat.com>
+
+	* include/wchar.h (__wmemset): Declare function without typeof.
+
 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
 
 	[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)