summaryrefslogtreecommitdiffstats
path: root/include/tgmath.h
diff options
context:
space:
mode:
authorstefanf <stefanf@FreeBSD.org>2004-09-03 23:44:09 +0000
committerstefanf <stefanf@FreeBSD.org>2004-09-03 23:44:09 +0000
commit4be37cf73f9ef32e03358a120c2720882f498629 (patch)
tree2a9568e7014c6133df645c2e791eebdce07fe0ab /include/tgmath.h
parentf50caa81cf43d100695dc588c6686d28c7da08f3 (diff)
downloadFreeBSD-src-4be37cf73f9ef32e03358a120c2720882f498629.zip
FreeBSD-src-4be37cf73f9ef32e03358a120c2720882f498629.tar.gz
Add a workaround to recognise I/_Complex_I as complex arguments. Although
the GCC manual claims that the expression 1.0fi has type float _Complex, __builtin_types_compatible_p(float _Complex, __typeof__(1.0fi))) yields 0.
Diffstat (limited to 'include/tgmath.h')
-rw-r--r--include/tgmath.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/tgmath.h b/include/tgmath.h
index 71460ad..246a7ba 100644
--- a/include/tgmath.h
+++ b/include/tgmath.h
@@ -64,7 +64,8 @@
#define __tg_is_complex(e1, e2, e3) \
(__tg_type3(e1, e2, e3, float _Complex) || \
__tg_type3(e1, e2, e3, double _Complex) || \
- __tg_type3(e1, e2, e3, long double _Complex))
+ __tg_type3(e1, e2, e3, long double _Complex)) || \
+ __tg_type3(e1, e2, e3, __typeof__(_Complex_I))
#define __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) \
__builtin_choose_expr(__tg_type_corr(x, y, z, long double), \
OpenPOWER on IntegriCloud