When I try to take the typeid of an __int128_t or a __uint128_t, I get an undefined reference at link time, e.g., with gcc/4.4.1: salmonj@drdblogin6.en.desres$ cat typeid.cpp #include <typeinfo> const std::type_info& ti(typeid(int)); // no problem const std::type_info& ti128(typeid(__int128_t)); const std::type_info& tu128(typeid(__uint128_t)); int main(){} salmonj@drdblogin6.en.desres$ desres-cleanenv -m gcc/4.4.1-13/bin g++ -std=gnu++0x typeid.cpp /tmp/ccKpEAiz.o:(.rodata+0x8): undefined reference to `typeinfo for __int128' /tmp/ccKpEAiz.o:(.rodata+0x10): undefined reference to `typeinfo for unsigned __int128' collect2: ld returned 1 exit status salmonj@drdblogin6.en.desres$
With current mainline, I just get these errors: g/x> /home/bangerth/bin/x86/gcc-mainline/bin/c++ x.cc -std=c++0x x.cc:4:36: error: '__int128_t' was not declared in this scope x.cc:5:36: error: '__uint128_t' was not declared in this scope What do I need to do to make these types available?
Subject: Re: undefined reference to `typeinfo for __int128' On Tue, 25 Aug 2009, bangerth at gmail dot com wrote: > With current mainline, I just get these errors: > > g/x> /home/bangerth/bin/x86/gcc-mainline/bin/c++ x.cc -std=c++0x > x.cc:4:36: error: '__int128_t' was not declared in this scope > x.cc:5:36: error: '__uint128_t' was not declared in this scope > > What do I need to do to make these types available? They are only available for 64-bit targets (more precisely, 64-bit targets other than PA; testcases use #if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)).
Confirmed with gcc4.2.1. W.
This looks like a duplicate of #43622.
*** This bug has been marked as a duplicate of bug 43622 ***