[libstdc++-v3 patch] Fix invalid use of signed wchar_t and unsigned wchar_t in <type_traits>

Doug Gregor doug.gregor@gmail.com
Sat Jun 30 16:33:00 GMT 2007


On 6/29/07, Paolo Carlini <pcarlini@suse.de> wrote:
> > IIRC, wchar_t cannot be marked signed or unsigned, but this is what
> > the C++0x type_traits header in libstdc++ is doing. The errors I'm
> > getting are:
[snip errors]
> > The fix is to remove those specializations. Patch follows. Tested on
> > cxx0x-branch (where it actually gets tested). Okay for mainline?
>
> Before going ahead, I would ask you to clarify the issue a bit more,
> which, put this way seems to me a little mysterious. For example, is the
> mainline compiler rejecting 'signed wchar_t' and 'unsigned wchar_t'? If
> not, why not? What is going on in the branch that exposes the failure?
> Is that something C++0x-specific?

It's not C++0x-specific. The mainline compiler will complain about
unsigned/signed wchar_t, but only with -pedantic. Otherwise, it
silently ignores the "signed" or "unsigned" part.
Apparently, this header never gets compiled with -pedantic on mainline.

The cxx0x-branch is  different because everything runs in C++0x mode
so <type_traits> ends up getting included with -pedantic in some tests
and we see the error.

  - Doug



More information about the Libstdc++ mailing list