Skip to content
Open
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
008dd1a
README.md: Add a simple description of what's what
richlowe Apr 17, 2011
5e12007
gcc: enable the .eh_frame based unwinder
richlowe Mar 5, 2014
2a4c2aa
intl: Don't use UTF-8 quotes. Ever.
richlowe Mar 11, 2014
35c0efb
Implement -fstrict-calling-conventions
richlowe Oct 27, 2012
95ff20d
allow the global disabling of function cloning
richlowe Sep 30, 2012
a819ca6
strict-cc2: check that disabling function cloning prevents constant p…
richlowe Mar 4, 2014
2415db8
sol2: enable full __cxa_atexit support
richlowe Mar 4, 2014
ac52312
i386: Save integer-passed arguments to the stack, to aid debuggers.
richlowe Jan 24, 2016
a90bdcf
16 update cmn_err format specifier
Nov 5, 2016
e70ee2f
19 cmn_err %b conversion should accept 0 flag
Feb 13, 2017
0affb1e
We never want to omit the frame pointer, regardless of the optimisation
citrus-it Oct 25, 2018
bd28674
libgo: libelf on illumos doesn't support largefile
richlowe Oct 29, 2018
f1f65fa
tests: x86_64 pro_and_epilogue RTL can't work with -msave-args
richlowe May 2, 2019
d96d5fc
i386: don't assert the FP is valid during epilogue adjustment
richlowe May 3, 2019
bceb7b4
gcc.target/i386/retarg: skip if msave-args
richlowe May 3, 2019
a75d099
i386: use correct error message about -msave-args and ABIs
richlowe May 3, 2019
502ba4a
gcc.target/i386: skip 16bit tests when -msave-args
richlowe May 3, 2019
75a14bc
Use compare-debug to pass stage2/stage3 comparison as avx_*.o and sse…
alarcher Oct 25, 2018
d7ffb6f
Address fixincludes failure
alarcher Oct 25, 2018
89fe576
Use GNU backends for gcc-{ar,nm,ranlib}
citrus-it Jul 19, 2019
09f4561
Fix libsanitizer build for illumos
alarcher Nov 12, 2019
739ed56
gccgo should use GNU ar
psumbera Nov 13, 2019
6f3b628
Make install-strip target work for libobjc
Nov 15, 2019
592e2aa
i386: use the new-style retpoline thunk names for external thunks, be…
richlowe Feb 7, 2018
91cb475
Use appropriate values objects
citrus-it Jan 7, 2020
d423aa2
-G should imply the same specs as -shared
citrus-it Feb 19, 2020
ed392ee
Correct path to elfdump
citrus-it Apr 10, 2020
cc858bb
Convert unsupported use of -msave-args to a warning
citrus-it Apr 11, 2020
1c91a50
Use the illumos libc SSP implementation for -fstack-protector
citrus-it Nov 4, 2020
8f17a1a
13185 -zassert-deflib does not work for 64-bit objects
citrus-it Jan 11, 2021
e6220df
13726 distinguish ourselves with a macro (__illumos__)
citrus-it Apr 28, 2021
c00abc9
libstdc++ must use thread-local errno
citrus-it Aug 31, 2021
9ad2b21
Add -fforce-omit-frame-pointer
citrus-it Oct 26, 2022
bb60758
cmn_err() supports 'h' and 'hh' (6333936)
citrus-it Nov 28, 2022
12f5db0
16768 kernel printf should know about %j and %z size specifiers
citrus-it Oct 15, 2024
b86befb
Avoid undefined symbols when using the dragonfly locale backend
Bill-Sommerfeld May 9, 2025
306e1b8
Handle a few cases where fields in struct lconv may contain multi-byt…
Bill-Sommerfeld May 18, 2025
6cf0454
Let --enable-clocale=dragonfly work as a configure option
Bill-Sommerfeld May 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions libstdc++-v3/config/locale/dragonfly/ctype_members.cc
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,66 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return __hi;
}

/*
* Taken verbatim from config/locale/generic/ctype_members.cc. DragonFly
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please add more context here? I'm trying to follow these and to be honest, the changes here don't really make a lot of sense, but I'm sure that's just because there's a layer of indirection that's going on. Is the idea that we're trying to encode some of how the ctype logic works with the mask bits? Who's mask bits are these supposed to refer to? Abstract ones in gcc, our actual ones?

* implements these in config/os/bsd/dragonfly/ctype_inline.h.
*/
#if defined(__illumos__)
bool
ctype<wchar_t>::
do_is(mask __m, char_type __c) const
{
bool __ret = false;
// Generically, 15 (instead of 11) since we don't know the numerical
// encoding of the various categories in /usr/include/ctype.h.
const size_t __bitmasksize = 15;
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
if (__m & _M_bit[__bitcur]
&& iswctype(__c, _M_wmask[__bitcur]))
{
__ret = true;
break;
}
return __ret;
}

const wchar_t*
ctype<wchar_t>::
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
{
for (;__lo < __hi; ++__vec, ++__lo)
{
// Generically, 15 (instead of 11) since we don't know the numerical
// encoding of the various categories in /usr/include/ctype.h.
const size_t __bitmasksize = 15;
mask __m = 0;
for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
if (iswctype(*__lo, _M_wmask[__bitcur]))
__m |= _M_bit[__bitcur];
*__vec = __m;
}
return __hi;
}

const wchar_t*
ctype<wchar_t>::
do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
{
while (__lo < __hi && !this->do_is(__m, *__lo))
++__lo;
return __lo;
}

const wchar_t*
ctype<wchar_t>::
do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
{
while (__lo < __hi && this->do_is(__m, *__lo) != 0)
++__lo;
return __lo;
}
#endif

wchar_t
ctype<wchar_t>::
do_widen(char __c) const
Expand Down