summaryrefslogtreecommitdiff
path: root/libstdc++-v3/config/locale
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-30 10:45:54 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-30 10:45:54 +0000
commit809249a04b187136006b82f98a6912198f571445 (patch)
tree2f1ffdb3fbc3d340a6ec8cac2f8367729741d38e /libstdc++-v3/config/locale
parente880317333e757fcdc8a0db3de090b79737cd92c (diff)
downloadgcc-809249a04b187136006b82f98a6912198f571445.tar.gz
2009-06-30 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40511 * config/locale/gnu/c_locale.cc: Don't use LC_CTYPE_MASK together with glibc2.2.x. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149089 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/config/locale')
-rw-r--r--libstdc++-v3/config/locale/gnu/c_locale.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/libstdc++-v3/config/locale/gnu/c_locale.cc b/libstdc++-v3/config/locale/gnu/c_locale.cc
index 4864d25cd34..80ef9c740d2 100644
--- a/libstdc++-v3/config/locale/gnu/c_locale.cc
+++ b/libstdc++-v3/config/locale/gnu/c_locale.cc
@@ -155,7 +155,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
if (__dup == __c_locale(0))
__throw_runtime_error(__N("locale::facet::_S_lc_ctype_c_locale "
"duplocale error"));
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__c_locale __changed = __newlocale(LC_CTYPE_MASK, __s, __dup);
+#else
+ __c_locale __changed = __newlocale(1 << LC_CTYPE, __s, __dup);
+#endif
if (__changed == __c_locale(0))
{
__freelocale(__dup);