This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] libstdc++/50441


On 09/18/2011 08:58 PM, Paolo Carlini wrote:
On 09/18/2011 08:36 PM, Joseph S. Myers wrote:
__int128_t and __uint128_t are legacy typedefs for __int128 and unsigned __int128.
I didn't realize this. Thus I guess, for 50441 and also for 40856 (which I'm about to do) better doing everything in terms of __int128 and unsigned __int128.
I'm currently blocked by the following issue. If I try to compile, with -std=gnu++98 (the default for C++) and -pedantic-errors:

template<typename T>
struct limits;

template<>
struct limits<__int128> { };

template<>
struct limits<unsigned __int128> { };

I get:

a.cc:8:26: error: ISO C++ does not support ‘__int128’ for ‘type name’ [-pedantic]
a.cc:8:10: error: redefinition of ‘struct limits<__int128>’
a.cc:5:10: error: previous definition of ‘struct limits<__int128>’


this of course does *not* happen with __int128_t and __uint128_t. Apparently I can suppress such -pedantic and -pedantic-errors issues in pragma system_header headers, but then resurface when using PCHs. Please let me know if the above is supposed to work in a gnu++98 (or gnu++0x) system header also together with any -pedantic options, or I should really use __int128_t and __uint128_t for the time being, I would be certainly ok with the latter.

Thanks!
Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]