I\'ve successfully compiled the current 3.3 branch of clang. But then C++ compilation of any file fails with the bug/error. Can that be fixed?
In file included f
The solution is to have this declaration. It works like a charm:
#ifdef __clang__
typedef struct { long double x, y; } __float128;
#endif
Solutions with #define
don't work because of the template specification redeclaration error.
Of course this is a hack, and you must be safe. I want clang just for a few experiments, so it won't cause any troubles.
I don't think clang
supports __float128
. It may be the same type as long double
(which is 16 bytes in clang
) so it may be a simple case of inserting:
#define __float128 long double
or:
typedef long double __float128;
somewhere early in your include chain.
I'm not guaranteeing that will work but it may, and it's probably best to try it out rather than wait until clang
starts supporting more gcc
extensions.
Either that, or switch to gcc
, if that's an option. I'm pretty certain that gcc
supports all of the gcc
extensions :-)
See http://llvm.org/bugs/show_bug.cgi?id=13530#c3 for possible workarounds.
You can fix it with:
CXXFLAGS+="-D__STRICT_ANSI__"