#include <complex> using namespace std; template <typename T> complex<T> add(complex<T> a, complex<T> b) { return a + b; }
template complex<long double> add(complex<long double>, complex<long double>); $ g++ -Wall tmp.cpp -mno-80387 -O2 tmp.cpp: In function ‘std::complex<_Tp> add(std::complex<_Tp>, std::complex<_Tp>) [with T = long double]’: tmp.cpp:5: error: insn does not satisfy its constraints: (insn 48 18 49 0 (set (mem/c:XF (plus:DI (reg/f:DI 7 sp) (const_int 32 [0x20])) [0 S16 A8]) (reg:XF 8 )) 99 {*movxf_integer} (nil) (nil)) tmp.cpp:5: internal compiler error: in reload_cse_simplify_operands, at postreload.c:394 $ gcc -v Reading specs from /usr/lib64/gcc/x86_64-pld-linux/4.1.0/specs Target: x86_64-pld-linux Configured with: ../configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/lib64 --infodir=/usr/share/info --mandir=/usr/share/man --x-libraries=/usr/X11R6/lib64 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++,fortran,objc,obj-c++,ada,java --enable-c99 --enable-long-long --disable-multilib --enable-nls --disable-werror --with-gnu-as --with-gnu-ld --with-demangler-in-ld --with-system-zlib --with-slibdir=/lib64 --enable-cmath --enable-libgcj --enable-libgcj-multifile --enable-libgcj-database --enable-gtk-cairo --enable-java-awt=gtk,xlib --enable-jni --enable-xmlj --enable-alsa --enable-dssi x86_64-pld-linux Thread model: posix gcc version 4.1.0 20060210 (prerelease) revision 110831 -- Summary: ICE on complex<long double> with -mno-80387 Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC build triplet: x86-64 GCC host triplet: x86-64 GCC target triplet: x86-64 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26223