[GCC-XML] fails to parse __float128 on linux 32-bits, OK in 64-bits
    Steve M. Robbins 
    steve at sumost.ca
       
    Sun Dec 18 17:58:40 EST 2011
    
    
  
Hi,
While investigating a build failure (ITK on Debian [1]), I discovered
that fftw3 now uses the GCC extension __float128 for quad precision
arithmetic.  In a nutshell, the following code builds OK using
Debian's GCC 4.6.2-9 on both my amd64 machine and a 32-bit chroot on
the same machine.  Gccxml, however, differs: it parses OK on 64-bits,
but complains when used with the 32-bit compiler.
	int main(int ac, char* av[])
	{
	    /* Modeled on code in fftw3.h, from about line 370 */
	/* __float128 (quad precision) is a gcc extension on i386, x86_64, and ia64
	   for gcc >= 4.6 (compiled in FFTW with --enable-quad-precision) */
	#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) \
	 && (defined(__i386__) || defined(__x86_64__) || defined(__ia64__))
	    typedef __float128 quadcomplex[2];
	#endif
	    return 0;
	}
The 32-bit gccxml invocation produces this output:
	steve at riemann{Testing}gccxml float128.c 
	float128.c: In function 'int main(int, char**)':
	float128.c:13: error: '__float128' does not name a type
Is there an easy solution to this?  I can make gccxml accept this
input by doing:
	steve at riemann{Testing}gccxml -D__float128=double float128.c 
But I'm afraid this will mess up the API of fftw output by gccxml.  Ideas?
Thanks,
-Steve
[1] https://buildd.debian.org/status/fetch.php?pkg=wrapitk-python&arch=i386&ver=3.20.1.2&stamp=1323582679
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://www.gccxml.org/pipermail/gccxml/attachments/20111218/db9c0172/attachment.pgp>
    
    
More information about the gccxml
mailing list