template < typename T >
T __add( T x, T y )
{
    return x + y;
}
template float __add( float, float );
template double __add( double, double );
template long double __add( long double, long double );

$ g++ add.cpp -O -mabi=ieeelongdouble
cc1plus: warning: Using IEEE extended precision long double
(...)
/tmp/cccCMXjm.o: In function
`long double __add<long double>(long double, long double)':add.cpp
(.text._Z5__addIeET_S0_S0_[_Z5__addIeET_S0_S0_]+0x70):
undefined reference to `_q_add'

i have a gcc-4.1.1snap with patches from PR25864.


-- 
           Summary: -mabi=ieeelongdouble / undefined reference to _q_add.
           Product: gcc
           Version: 4.1.1
            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: ppc-linux
  GCC host triplet: ppc-linux
GCC target triplet: ppc-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26695

Reply via email to